您的位置:首頁技術文章
文章詳情頁

java - IM即時通信服務器原理

瀏覽:93日期:2024-01-29 14:39:35

問題描述

點對點 的 可以直接使用socket進行通信

但是一般的工程實現 都需要服務器進行轉發

那么我想請問 服務器管理那么多連接

它是如何做到 可以將消息發送給想發送的人的

除了openfire還有什么 開源實現

問題解答

回答1:

node.js + socket.io websocket

之前做的是用node.js + socket.io 把連接的信息放到一個json中. 用 key來標識 是哪個用戶的. 然后發送的 消息 里會持有 這個key 服務端再通過 key 轉發給 對應 的客戶端.只知道 web這些 其它 的不是很清楚

回答2:

就拿簡單的QQ比較,QQ用戶啟動客戶端登陸以后,實際就是用戶告知服務端我已經上線,那么這時候客戶端就處理服務器的監聽狀態,所謂一對一發消息,就是用戶A發個消息出去,然后消息內容里面肯定包含了,內容、接收者B,服務器監聽到這個消息,然后根據接收者B獲取clientSocket-B將A的消息轉發給B,大致如此

標簽: java
相關文章:
国产综合久久一区二区三区