使用服务器发送的事件和node.js构建聊天应用程序

问题描述 投票:0回答:3

我是node.js和SSE的新手。我想使用SSE和node.js创建一个聊天应用程序。哪一个指南更适合SSE或Websocket?是否有使用js的IE而不是IE7的php的polyfill?

请提出建议。

提前感谢。

html5 node.js websocket server-sent-events
3个回答
1
投票

首先考虑兼容性。

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



1
投票

如果客户端永远不会向服务器发出请求,而服务器将进行所有推送,则应该使用服务器发送的事件。

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.