シンプルなログアウトとログインで簡単なアプリケーションを作成しようとしています。ログインしている間に部屋に入っていて、ログアウト中にsocket.leave( 'room')で部屋を出ています。Cantは同じページでSocket.on( 'connect'、function(){})を2回目に実行します
問題は、リフレッシュしないで同じページに再度ログインすると、socket.on( 'connect'、...)内のコードが実行されないということです。この問題を解決するのを手伝ってください。
シンプルなログアウトとログインで簡単なアプリケーションを作成しようとしています。ログインしている間に部屋に入っていて、ログアウト中にsocket.leave( 'room')で部屋を出ています。Cantは同じページでSocket.on( 'connect'、function(){})を2回目に実行します
問題は、リフレッシュしないで同じページに再度ログインすると、socket.on( 'connect'、...)内のコードが実行されないということです。この問題を解決するのを手伝ってください。
Jakub氏によると、「connect」イベントは、クライアントがサーバーに接続したときに起動します。ルームは、接続の上に余分な名前空間です。誰かが参加するたびにコードを実行したい場合、最も簡単な方法は、socket.join('whatever')
呼び出しが行われた後にそのコードを実行させることです。
少し複雑ですが、おそらくより包括的な解決策は、部屋に参加するための何らかの処理を行うことです。私はあなたがsocket.on('join', fn)
を行うことができますが、それをショットを与える場合は手をオフにはわかりません。それがうまくいかない場合は、バックエンドを介して購読可能である必要があります。
socket.manager.store.subscribe('join', function (id, room) {
//do whatever
});
「参加時」など(カスタムメッセージ)に変更することを検討してください。 connectは、Webソケットバックエンドへの接続時にsocket.ioのインフラストラクチャによって使用されます。 –
正しく答えるにはいくつかのコードが必要です。 – drinchev