我是 node.js 和 SSE 的新手。我想使用 SSE 和 node.js 创建一个聊天应用程序。谁能指导哪个更好的 SSE 或 websocket?IE7+ 是否有使用 js 而不是 php 的 IE 填充
请建议。
提前致谢。
我是 node.js 和 SSE 的新手。我想使用 SSE 和 node.js 创建一个聊天应用程序。谁能指导哪个更好的 SSE 或 websocket?IE7+ 是否有使用 js 而不是 php 的 IE 填充
请建议。
提前致谢。
如果客户端永远不会向服务器发出请求并且服务器将完成所有推送,那么您应该使用服务器发送的事件。
但是,对于聊天应用程序,由于客户端需要不断地向服务器发送请求,WebSocket API 是自然的选择。
WebSocket API 的“polyfills”是其他以低效方式模拟套接字连接的技术,例如 Ajax 长轮询。
像 Socket.IO 这样的 WebSocket 库被设计为在可用时使用 WebSocket API,并在 WebSocket API 不可用时回退到其他技术,如 Ajax 长轮询。
某些服务器端语言也以不同的方式处理资源。例如,PHP 将需要每个套接字连接 1 个进程,这可以快速填充线程限制,而 NodeJS (IIRC) 可以循环连接并在 1 个线程上处理它们。因此,在给定您选择的解决方案的情况下,还应考虑语言如何处理资源。
首先考虑兼容性。
上交所: http ://caniuse.com/#feat=eventsource
IE:不支持
火狐:版本 6+
歌剧:版本 11+
Chrome:未知版本 +
Safari:版本 5.1+
WebSocket:(协议 13) http://caniuse.com/#feat=websockets
即:版本 10+
火狐:版本 11+
歌剧:版本 12.1+
铬:版本 16+
Safari:版本 6+
我知道很多与 WebSockets 一起工作的模块(包括我制作的一个simpleS,我做了一个简单的演示聊天来展示如何在通道中组织连接,试一试),还有一些与 SSE 一起工作的模块,我猜最后一个测试较少,与使用 WebSockets 的模块相比,你不能太依赖它们。
您可以在此处找到有关 WebSockets 和 SSE 的模式信息:WebSockets vs. Server-Sent events/EventSource
有一个 polyfill - https://github.com/Yaffle/EventSource (IE8+) 和聊天示例 - https://github.com/Yaffle/EventSource/blob/master/tests/server.js