javascript - 服务器发送事件与 websockets?

标签 javascript websocket server-sent-events

我正在开发一个网络应用程序,用户可以通过从智能手机到台式机的多个平台访问它,有时需要在两个客户端之间进行通信,例如,如果我想让我的 friend 加入我的网络,我会给他发一个好友请求,但我希望我的 friend 无需刷新页面即可看到该请求。

在这种情况下,哪个是更好的选择? 而且因为我希望它能在尽可能多的平台和浏览器上工作,哪个有更多的浏览器支持? 有更好的选择吗?

最佳答案

做出此选择时要记住的一些事项。

  • 尝试通过 WebSocket 连接获取内容很糟糕 设计决策,因为 WebSockets 是一个不同的嵌套协议(protocol) 在 HTTP 连接中并且它不能利用缓存(无论是 浏览器或 CDN)。
  • 一些较旧的代理不会传递 Websocket 连接,除非它在服务器时隐藏在安全连接中 发送的事件仍然是一个 HTTP 连接,不会受到影响 这个。
  • native Android 不支持 WebSockets 和 SSE 浏览器直到 4.4(当他们切换到使用 Chrome 时)——因此如果 你正在考虑混合移动应用程序,你将需要一个后备这样 作为 SocketIO,因为在撰写本文时,4.4 仅占市场的 20% 和混合应用程序使用 native Android 浏览器。
  • WebSockets 是 最省电的移动设备协议(protocol),因为所有其他 选项需要很多 HTTP 连接,它是重复的 协商会给 cpu 带来负担并耗尽 电池。

另一个选项可能是通知。所有移动设备现在都支持可以针对应用程序的通知,许多浏览器也支持。在所有情况下,从客户端到消息中心(Apple、Google、Microsoft 等)的连接都已经存在,并且所有通知都通过此 channel 发送。

下面是 WebSockets 与 SSE 的一个很好的概述: http://www.html5rocks.com/en/tutorials/eventsource/basics/

关于javascript - 服务器发送事件与 websockets?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23914374/

相关文章:

javascript - Protocol Buffer : WebApi -> JS - Decoded object is empty

javascript - 制作一个图像 slider ,每 6 秒更改一次图像

使用 WebSockets 的后端服务器的 Apache 重定向规则

go - 如何在 golang 中处理 goroutines 并获得响应

javascript - Jquery:当用户停止表单提交时如何处理 "stop/cancel"事件?

javascript - Cakephp Ajax,使用 Js Helper 获取文本字段的值

python - 使用 Python 中的标准模块连接到网络套接字(wss)?

php - Ratchet PHP WAMP - React/ZeroMQ - 特定用户广播

html - 为什么尝试使用 SSE 时 DeferredResult 在 setResult() 上结束

websocket - HTTP/2 世界中的 WebSockets 替代方案是什么?