WebSocket是适合聊天应用的技术吗?

idfiyjo8  于 2023-01-21  发布在  其他
关注(0)|答案(3)|浏览(148)

我用WebSocket创建了一个小的聊天应用程序,用户可以加入聊天室,可以与多个用户聊天或分组聊天。
可以在同一时间最多80至100用户可以发送消息(这是我的要求)
所以我的问题是WebSocket对我有用吗?

vu8f3i0k

vu8f3i0k1#

是的。
事实上,聊天是web套接字应用程序最常见的例子。
http://socket.io/get-started/chat/
我想你想问的是:"一台服务器在100个以上的网络套接字连接处于活动状态时能否保持良好的性能"?
答案也是:绝对是的。
证据是基准测试,一台服务器可以轻松处理超过1000个websocket连接而不出问题。
参见:

sh7euo9m

sh7euo9m2#

Websockets可用于允许每个客户端从您的服务器获取更新,而无需定期轮询服务器。
如果你想要真正的响应(即当人们输入时显示文本),那么Websockets是你所需要的。然而,如果你愿意在消息发送后等待1秒来显示消息,你也可以使用周期性的get请求。
但是,请考虑将使用您的应用的浏览器。请参阅:我可以使用Websockets的一个兼容。

r55awzrz

r55awzrz3#

补充一下Matthaus Woolard所说的,并不是所有的浏览器都支持WebSocket,比如Opera mini,所以要让你的应用程序工作正常,你需要使用websocketlong polling,来设计。要检测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
};

相关问题