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
};
3条答案
按热度按时间vu8f3i0k1#
是的。
事实上,聊天是web套接字应用程序最常见的例子。
http://socket.io/get-started/chat/
我想你想问的是:"一台服务器在100个以上的网络套接字连接处于活动状态时能否保持良好的性能"?
答案也是:绝对是的。
证据是基准测试,一台服务器可以轻松处理超过1000个websocket连接而不出问题。
参见:
sh7euo9m2#
Websockets可用于允许每个客户端从您的服务器获取更新,而无需定期轮询服务器。
如果你想要真正的响应(即当人们输入时显示文本),那么Websockets是你所需要的。然而,如果你愿意在消息发送后等待1秒来显示消息,你也可以使用周期性的get请求。
但是,请考虑将使用您的应用的浏览器。请参阅:我可以使用Websockets的一个兼容。
r55awzrz3#
补充一下Matthaus Woolard所说的,并不是所有的浏览器都支持WebSocket,比如Opera mini,所以要让你的应用程序工作正常,你需要使用websocket和long polling,来设计。要检测websocket的可用性,你可以使用$.get或$. AJAX 方法向WebSocket端点发送一个请求。如果连接成功,onopen事件将被触发。并且可以使用onmessage事件来处理传入消息,如果连接不成功,则会触发onerror或onclose事件,示例如下: