繁体   English   中英

websocket 是聊天应用程序的正确技术吗?

[英]Is websocket a right technology for Chat Application?

我使用 websocket 创建了一个小型聊天应用程序,用户可以加入聊天室并可以与多个用户或群组聊天。

可能一次最多 80 到 100 个用户可以发送消息(这是我的要求)

所以我的问题是 websocket 对我有用吗?

是的。

实际上,聊天是Web套接字应用程序中最常见的一个例子。

http://socket.io/get-started/chat/

我想您想问的是:“在100个以上的Websocket连接处于活动状态时,服务器能否保持良好的性能”?

答案也是:绝对可以。

证明是基准。 一台服务器可以轻松处理1000多个websocket连接,而不会出现问题。

看到:

Websocket可用于允许每个客户端从服务器获取更新,而无需定期轮询服务器。

如果您想真正响应(即在人们打字时显示文本),那么Websockets是您所需要的。 但是,如果您乐意在发送消息后等待一秒钟以显示消息,则也可以使用定期的get请求。

不过,请考虑将要使用您的应用的浏览器。 请参阅: 我可以兼容使用Websocket

补充一下 Matthaus Woolard 所说的,并非所有浏览器都支持 websocket,即 Opera mini,因此为了使您的应用程序能够正常工作,您需要使用websocket长轮询进行设计。 要检测 websocket 可用性,您可以使用 $.get 或 $.ajax 方法向 WebSocket 端点发送请求。 如果连接成功,会触发onopen事件,可以使用onmessage事件来处理传入的消息。 如果连接不成功,将触发 onerror 或 onclose 事件。 这是一个例子:

var socket = new WebSocket("ws://example.com/ws");

socket.onopen = function() {
    console.log("WebSocket connection opened.");
    //run your websocket node.js here
};

socket.onmessage = function(event) {
    console.log("Received message: " + event.data);
    //run your websocket node.js here
};

socket.onerror = function(event) {
    console.log("WebSocket error: " + event);
   //fall back to long polling here
};

socket.onclose = function() {
    console.log("WebSocket connection closed.");
   //fall back to long polling he
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM