ホームページ  >  に質問  >  本文

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

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

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

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

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

除了openfire还有什么 开源实现

黄舟黄舟2743日前620

全員に返信(2)返信します

  • 巴扎黑

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

    node.js +ソケット.io
    ウェブソケット

    以前に行ったのは、node.js +ソケット.ioを使用することでした
    接続情報をjsonに入力し、キーを使用してどのユーザーであるかを識別し、送信されたメッセージにこのキーが保持され、サーバーがそれを転送します。キーを介したサーバー。対応するクライアント。
    Web についてのみ知っており、その他のことはあまり明確ではありません

    返事
    0
  • 迷茫

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

    単純な QQ と比較してください。QQ ユーザーがクライアントを起動してログインすると、ユーザーは実際にサーバーにオンラインであることを通知し、この時点でサーバーの監視ステータスを処理します。 1 つのメッセージは、ユーザー A がメッセージを送信することを意味し、メッセージのコンテンツにはコンテンツと受信者 B が含まれている必要があります。サーバーはメッセージを監視し、受信者 B に基づいて clientSocket-B を取得し、A のメッセージを B に転送します。 . 大体こんな感じです

    返事
    0
  • キャンセル返事