我是node.js和SSE的新手。我想使用SSE和node.js创建一个聊天应用程序。哪一个指南更适合SSE或Websocket?是否有使用js的IE而不是IE7的php的polyfill?
请提出建议。
提前感谢。
首先考虑兼容性。
SSE: http://caniuse.com/#feat=eventsource
IE:不支持
Firefox:版本6 +
Opera:版本11 +
Chrome:未知版本+
Safari:版本5.1 +
WebSocket:(协议13) http://caniuse.com/#feat=websockets
IE:版本10 +
Firefox:版本11 +
Opera:版本12.1 +
Chrome:版本16 +
Safari:版本6 +
我知道许多与WebSockets兼容的模块(包括我自己制作的模块simpleS,我进行了一个简单的演示聊天,以显示如何在通道中组织连接,请尝试一下),而少一些可以与SSE一起使用,我想最后一个没有经过测试,与用于WebSocket的模块相比,您不能过分依赖它们。
您可以在此处找到有关WebSocket和SSE的模式信息:WebSockets vs. Server-Sent events/EventSource
如果客户端永远不会向服务器发出请求,而服务器将进行所有推送,则应该使用服务器发送的事件。
但是,对于聊天应用程序,因为客户端需要不断向服务器发送请求,因此WebSocket API是自然的选择。
WebSocket API的“ polyfills”是其他技术,它们以效率低得多的方式模拟套接字连接,例如Ajax长轮询。
像Socket.IO之类的WebSocket库被设计为在可用时使用WebSocket API,而在WebSocket API不可用时回退到其他技术,例如Ajax长轮询。
某些服务器端语言还以不同的方式处理资源。例如,PHP每个套接字连接将需要1个进程,这可以迅速满足线程限制,而NodeJS(IIRC)可以遍历连接并在1个线程上处理它们。因此,还应考虑在给定所选解决方案的情况下语言如何处理资源。