簡體   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