2016-04-29 9 views
0

私はサーバーと多くのクライアントを持っています。各クライアントは、初めてサーバーに接続するときにサーバーに登録します。瞬時にサーバは、ユーザ名とそのIPアドレス、およびオンラインのユーザ(クライアント)の公開ポートのリストを維持する。他のユーザーがオフラインのときにピアツーピアメッセージングでメッセージを送信する方法は?

ユーザーXは、このリストのためにサーバーを求めることができるし、直接Yに対応するIPアドレスとポートを使用して他のユーザYに連絡し、Xは、その接触したユーザYの名を保持しますmessaging.Theユーザーを開始することができます。

ユーザXが再びそのリストのユーザYに連絡したが、ユーザYが現在オフラインになっている(オンラインユーザのリストにXの名前が含まれていない)場合、ユーザXはユーザYにどのようにコンタクトするか?

+0

プログラミングに入ることはできませんが、電話通信と同じ方法でソートします。ユーザーは応答しないと呼ばれましたか?彼は「誰でもあなたを呼んだ人」を取得します。 – sysfiend

答えて

0

私は一時的にサーバーにYに送信されたXメッセージを格納します、そして、ユーザYがオンラインに戻った後、サーバはY自分自身にメッセージをプッシュします(メッセージはXに由来することを、Yは、何らかの方法で知らせます)

+0

ユーザーYが突然チャットを離れてアプリケーションを閉じた場合はどうなりますか? – abc

+0

あなたはYが突然閉じられたことを意味しますか?サーバーがそれに応じてテーブルを更新できるように、クローズされていることを通知するようにクローズルーチンを作成する必要があります。また、TCPまたはUDPを使用していますか? TCPを使用している場合、パケットがYに到着しなかったことがわかり、パケットをサーバーに再送信します(Xが応答していないことをサーバーに通知することさえ可能です) –

関連する問題