1

我是 node.js 和 SSE 的新手。我想使用 SSE 和 node.js 创建一个聊天应用程序。谁能指导哪个更好的 SSE 或 websocket?IE7+ 是否有使用 js 而不是 php 的 IE 填充

请建议。

提前致谢。

4

3 回答 3

2

如果客户端永远不会向服务器发出请求并且服务器将完成所有推送,那么您应该使用服务器发送的事件。

但是,对于聊天应用程序,由于客户端需要不断地向服务器发送请求,WebSocket API 是自然的选择。

WebSocket API 的“polyfills”是其他以低效方式模拟套接字连接的技术,例如 Ajax 长轮询。

像 Socket.IO 这样的 WebSocket 库被设计为在可用时使用 WebSocket API,并在 WebSocket API 不可用时回退到其他技术,如 Ajax 长轮询。

某些服务器端语言也以不同的方式处理资源。例如,PHP 将需要每个套接字连接 1 个进程,这可以快速填充线程限制,而 NodeJS (IIRC) 可以循环连接并在 1 个线程上处理它们。因此,在给定您选择的解决方案的情况下,还应考虑语言如何处理资源。

于 2013-01-28T10:29:09.790 回答
2

首先考虑兼容性。

上交所: 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

于 2013-01-28T10:43:32.680 回答
1

有一个 polyfill - https://github.com/Yaffle/EventSource (IE8+) 和聊天示例 - https://github.com/Yaffle/EventSource/blob/master/tests/server.js

于 2013-01-29T04:10:34.587 回答