首頁  >  問答  >  主體

java - IM即时通信服务器原理

点对点 的 可以直接使用socket进行通信

但是一般的工程实现 都需要服务器进行转发

那么我想请问 服务器管理那么多连接

它是如何做到 可以将消息发送给想发送的人的

除了openfire还有什么 开源实现

黄舟黄舟2744 天前627

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-04-18 10:51:37

    node.js + socket.io
    websocket

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

    回覆
    0
  • 迷茫

    迷茫2017-04-18 10:51:37

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

    回覆
    0
  • 取消回覆