3

私はgevent-socketioを見てきましたが、特定のユーザーにブロードキャストするにはどうすればよいか疑問に思っていました。userY がデータを送信したときに、userX に通知を送信したいとします。この例では、チャットルームのすべてのユーザーにメッセージをブロードキャストしていますが、特定のユーザーにブロードキャストしてイベントを行う方法がまだわかりません。カスタム Broadcast Mixin を作成する必要がありますか?

4

1 に答える 1

2

特別なブロードキャスターまたは特別な部屋を実装したい場合は、独自の Mixin を実装する必要があります。Namespace と Socket オブジェクトに「session」属性を追加したところです。必要な情報を設定できます (これは辞書です)。たとえば、にニックネームを設定し、 (BroadcastMixin で) にself.session['nickname']似た関数を設定するイベントを用意することをお勧めしますbroadcast_event()。これは、すべてのソケットをループし、そのセッションをチェックして、ソケットがその特定のユーザーに属しているかどうかを確認します。その場合、パケットを送信します。

コードを見てください。使い方はとても簡単です。ソケットと名前空間の関係を理解するだけで済みます。

于 2012-03-30T04:14:13.880 に答える