1

私は、ユーザーが彼の友人の1人とメッセージを交換できるチャットサーバーアプリケーションを書いています。ユーザーが接続すると、接続をクラス変数ハッシュに保存します。

@@connections[:user_id] = conn

誰かがユーザーにメッセージを送信するとき、私はハッシュで彼の接続を探し、それを介してメッセージを送信します。クライアントが単に停止し、oncloseコールバックが呼び出されない場合があります。

4

1 に答える 1

1

これは問題なく機能し、Web IRCクライアントを作成し始めたときに行ったことですが、問題は、接続されているユーザーを単一のrubyプロセスに結合していることです。2番目のemリアクターを起動する場合、その2番目のプロセスは同じクラス変数を共有しません。haproxyを使用してユーザーを異なるプロセス間で分割することでこれを回避できますが、注意が必要です。

于 2012-07-18T17:05:04.797 に答える