JavaScript + PHP 和 SSE - 服务器发送的事件和 MySQL

标签 javascript php html mysql server-sent-events

我的可扩展性是否足够?
我的目标是创建一个 MySQL WebRTC 模块。在研究了服务器到客户端 通信的所有备选方案后,SSE 非常适合推送 MySQL 通知。我想不可避免地替换 WebSockets。

我真的可以使用 window.onbeforeunload() 吗?
Socket.IO 和 Node 服务器是 < lyt > $var ,但我不能依赖我的托管提供商来开放端口。所以我发现 SSE 是高度兼容的,以及 window.onbeforeunload = () => abort(id); 想象一个 SQL->PHP->Client 信令服务器

性能如何?
我不关心延迟,因为我只使用 SSE 进行通知。 Web RTC 仅适用于双向或三向调用。用于聊天的 SSE,只需要在客户端更新我的民意调查计数,并在服务器端更新我的 sql 记录。

因此
我已经管理了客户端<-服务器<-MySQL 拓扑,但是断开连接 如何与 AJAX onbeforeunload 一起工作(例如:非常小的 json 小于 2kb@1kbps)。通过 WebRTC reshape 来自套接字的自然心跳,用于 2 路或 3 路流式传输的实时音频/视频,我们可以,RTCDataChannel(id) as to EventSource( MySQL)

???
集思广益后,我认为 window.onbeforeunload 如果它是同步的而不是异步的,它会起作用。因此,对于一个好的 UI,应该工作得非常快。我只想清除 MySQL 记录。所以 SSE 可以告诉其他用户“我不在了”

[ https://caniuse.com/#feat=eventsource]
[ https://caniuse.com/#search=beforeunload]

最佳答案

因此,您想使用 SSE 和 MySQL 作为信令服务器。

实际上,您假设为此需要 MySQL,但实际上不需要。我能够用纯文本(无论如何只是交换几行)而不是数据库创建一个可靠的信令服务器。参见 https://github.com/nielsbaloe/webrtc-php .

关于您的关注点:

  • SSE 的可扩展性不是很好,但对于最多 100 个客户端来说已经足够了。所以,对于我所有的小型自制项目,它都很好。 SSE 和 Websockets 在语法上是一样的,所以当我想向上扩展时,代码几乎是一样的。
  • 我不明白你为什么要谈论 window.onbeforeunload()。根本没有必要使用它,事实上,不要使用它。 SSE 负责网页的自动重新加载,所以绝对不需要自己写任何东西。
  • 性能很好,SSE 和 websockets 一样快,就像现在使用 HTTP/1.1 一样,完全一样。仅对于“帖子”,它需要更长的时间,因为打开了一个新的套接字。从服务器到客户端有一个小的延迟,因为客户端每隔几秒就请求一次新信息(我在我的项目中将其缩小到 1 秒),但是作为信号服务器并不重要,在 2 秒内客户端已经找到彼此(而不是说 400 毫秒)。

关于JavaScript + PHP 和 SSE - 服务器发送的事件和 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54805134/

相关文章:

html - 无法使具有动态高度的容器可滚动

c# - 按类获取TinyMCE实例

javascript - 我可以使用/包含 HTML 部分,客户端,使用 EJS(或类似的)吗?

javascript - 搜索字符串并捕获特定 HTML 属性的值

javascript - 不支持E4x后转换greasemonkey脚本

php - 使用 PHP 创建 .jpg 文件的下载链接

javascript - 在切换到 HTML 页面中的不同选项卡时启用/禁用 jQuery 脚本

php - 使用 php 从 mysql 表中选择值

php - 检测 Firefox 插件吗?

PHP,SQL 不工作