当前位置: 代码迷 >> JavaScript >> JavaScript + PHP & SSE - 服务器发送事件 & MySQL
  详细解决方案

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

热度:29   发布时间:2023-06-05 09:21:50.0

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

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

表现如何?
我不关心延迟,因为我只使用 SSE 进行通知。 Web RTC 仅适用于双向或三向呼叫。 用于聊天的 SSE,只需要更新我的 poll-counts 客户端,并更新我的 sql 记录服务器端。

因此
我已经管理了 Client<-Server<-MySQL 拓扑,但是断开连接如何与 AJAX onbeforeunload 一起工作(例如:非常小的 json 小于 2kb@1kbps) 。 重新发明套接字的自然心跳,用于 2 或 3 路流的实时音频/视频是使用 WebRTC 完成的,但我们可以将RTCDataChannel(id)与EventSource(MySQL) 相关联

???
经过头脑风暴,我认为 window.onbeforeunload 如果它是同步的,而不是异步的,那么它会起作用。 因此,对于一个好的 UI,应该工作得非常快。 我只想刷新 MySQL 记录。 所以SSE可以告诉其他用户“我不在了”

[
[

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

实际上,您假设您需要为此使用 MySQL,而您不需要。 我能够使用纯文本(无论如何只是交换几行)而不是数据库来创建可靠的信令服务器。 请参阅 。

关于您的关注点:

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