2016-06-15 3 views
0

私はRedisとSocket.ioを使ってクライアント側にイベントをブロードキャストし始めています。私はバックエンドにLaravelを使用しており、イベント機能を利用します。Socket.io:ユーザーがリスニングチャネルを変更することは可能ですか?

ユーザーのアクセスレベルに基づいて、ユーザーは特定のチャンネルを聴きたいだけです。聞こえるチャンネルを動的に設定できると思っていましたが、デバッグツールを使用するかどうか、またはリスンしているチャンネルを変更するかどうかについて心配していました。

たとえば、「channel-100」でリッスンするとページが読み込まれますが、「channel-110」のような他のチャンネルを聴くことができるようにコードを変更できますか?

+0

は私たちに関連するコードを表示します。 – Brad

答えて

2

私は具体的にSocket.ioを助けることができるかどうかはわかりませんが、私たちのリアルタイムシステムでどのようにアプローチしたかを教えてください。これはあなたの問題に当てはまるかもしれません。

クライアントはチャンネルにアタッチするようにリクエストできます。つまり、クライアントが聴いたことをクライアントが判断した場合とは逆です。サーバーは決定しません。 how channels attach.

これで、どのクライアントがどのチャンネルにアクセスできるかを検討するために、Laravelアプリはどのような権限を持つトークンを発行する必要があります。あなたのLaravelアプリケーションはID管理を担当しており、ユーザーが誰であるかを知っているので、いつでも最新の情報を入手するのが最適です。だからあなたのクライアントはあなたのSocket.ioサーバーに渡されるLaravelアプリケーションからトークンを要求する必要があります。トークンはそれらのチャンネルへのリクエストの許可/不許可のルールを適用します。そうすれば、あなたのSocket.ioサーバはシステムから埋め込まれたビジネスロジックを持つ必要はなく、あなたのアプリで簡単にトークンを発行することができます。

how we made token authentication can work with your appを参照してください。

私はそれが直接的な答えではないことを認識していますが、それが構造的にどのように考えるかを助けてくれることを願っています。私たちはあなたを助けることができるように

マット、共同創設者、Ably: simply better realtime

関連する問題