究極のデザインは、達成しようとしているものによって決まります。それは "1対1のチャット"サービスか、多分 "1対多放送"です。サービスは匿名ですか?あなたはどのようにしてユーザーをお互いに見つけたいのですか?どれくらい安全である必要がありますか?
私は、各接続(クライアント)に一意の識別子(UID)を割り当てます。これにより、サーバーは「会話」のペアを作成したり、おそらくリスナー(サブスクライバー)とライター(パブリッシャー)のリストを作成してトラフィックを誘導できます。
接続されたユーザーは、2番目に接続されたユーザーのUIDを入力でき、サービスはuidペアを使用してメッセージを前後に投稿できます。
user123が
user0987が
をuser123や掲示板/チャットルームのスタイルを行くために送るuser0987に送信
会話(user123、user0987):
"ボード" を作成 - であるだけで目的地をすべてのテキストのリストが
user123を送っボード "MiscTalk"
user0987がMiscTalk "
各TEを送信「ボードはジョイン" "参加します" xtをサーバに送信すると、サーバはそのテキストをボードに追加し、各クライアントはボードの変更をポーリングします。
すべてのSocketは送信または受信できますが、プログラムは「誰が」ソケットに接続されているかを追跡し、それらの間にトラフィックを誘導する必要があります。