GTalk に似た Web チャット アプリケーションを作成しています。クライアント側は Orbited + Sinatra、サーバー側は Ruby をベースにしています。私はすでにすべてのプロトコルを実装しており、すべてうまく機能しています。しかし。問題が発生しました - 1 人のユーザーから複数の接続がある場合の対処方法がわかりません。たとえば、2 つの異なるブラウザーからチャットにログインしたとします。Google はそれをうまく処理しており、2 つのチャットはまったく同じように見えます。しかし、私のアプリでは、連絡先リストにまったく同じユーザーが 2 人だけ表示されますが、これは正しくありません。
以下は、サーバー クライアント プールの小さな例です。
Server
--> Connections
|
- Client (User Information, ConnectionID)
- Client (User Information, ConnectionID)
....
- Client (...)
プライベート(ユーザーからユーザーへ)、パブリック(ユーザーから会議へ)の 2 種類のメッセージがあります。
そのような状況に対処する方法を見つけようとしていますか?助言がありますか?