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