質問

Wamp.WS仕様を使用して、Webサイトでパブリック/プライベートユーザーチャットルームを設計しています。

私の問題は、接続されたすべてのユーザーのリストを維持しようとするときに起こります。私にできること:

  1. すべてのユーザーは、「/連絡先/接続」トピックを購読します。
  2. ユーザーが接続すると、「user_id」引数で「hello」メッセージを公開し、他のユーザーに接続されていることを伝えます。

- >しかし、どうすればユーザーを信頼できますか?すべてのユーザーは、ランダムな「user_id」引数で「hello」メッセージを送信できます。

私にとって、サーバーはメッセージをブロードキャストする前にいくつかのチェックを行う必要があります。しかし、それはwamp.js仕様に従っていますか?公開されたメッセージは常にサーバーによってブロードキャストされることを読みました。

別のソリューションは、RPC呼び出しを使用してユーザーを接続することです。実際、私はユーザーを認証するためにそれをしました。しかし、サーバーはイベントを単独で「/連絡先/接続」トピックにブロードキャストできますか? (RPCコールの後、「公開」メッセージの後ではなく)私はそのイベントがクライアントからの「公開」の直接的な結果にすぎないことを読みました。さらに、これにより、通常のユーザーがイベントの「/連絡先/接続」トピックを送信することを妨げません。これはサーバーによってブロードキャストされます。

私の2つのソリューション(放送前に公開されたメッセージをチェックするか、RPC呼び出し後のサーバーによるイベントのブロードキャスト)の両方がWAMP.JS仕様を破ると感じています。私が間違っている ?

ありがとうございました

役に立ちましたか?

解決

WAMPは間を区別します

  1. 認証
  2. 許可
  3. 検証

認証 WAMPルーターでWAMPクライアントの身元を確立します。

使用するとき Autobahn | Python あなた自身のWampルーターを転がすには、 ここ 異なる認証メカニズムを実装する方法を示す複数の例です。

使用するとき Crossbar.io (統合された、生産準備完了のワンプルーター)、認証メカニズムが組み込まれています(ここ).


許可 特定のWAMPクライアントが、特定のURIでWAMPアクション(公開や呼び出しなど)を実行できるかどうかを判断します。

使用するとき Autobahn | Python あなた自身のWampルーターを転がすには、 ここ カスタム認証を実装する方法を示す例です。

crossbar.ioには、構築された静的承認スキームがあり、認証のためのカスタムWAMP手順を登録できます(ここ).


最後に、あります 検証, 、イベントまたは通話のアプリケーションレベルのペイロードをチェックします。

ここ Autobahn | Pythonの例です。 Crossbar.ioは、まもなく検証のためにカスタムWAMP手順を登録することを許可します。


ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top