2

私は現在connections自分のwebsocket.

私のあるページには次のappものがあります:

var socket = io.connect('http://my.ip.address' + ':' + '80' + namespace);
socket.on('connect', function () {
            socket.emit('join', { room: 'venue_' + venue_id });
        });

この後、receiveいくつかdataを通過してsocketから、別のページに移動します。この 2 番目のページが実行された後、もう一度最初のページに戻り、socket上記のコードが再度実行されます。

これが何らかの問題を引き起こすかどうか疑問に思っていますか?複数回作成されないconnectように、早い段階で試してみるべきですか?connectionもしそうなら、socket変数を渡すことは可能javascriptですか?

で使用flask-socketioしていserverます。

ご協力いただきありがとうございます。

4

2 に答える 2

0

webSocket 接続は、あるページから次のページへと存続することはできません。ブラウザが新しいページに移動すると、その元のページのすべての webSocket 接続が閉じられます。

そのため、あるページからそれを置き換えるページに webSocket 接続を渡す方法はありません。

したがって、webSocket 接続を使用する完全に通常の方法は、ページの読み込み時にソケットを作成することです。webSocket 接続の作成は、負荷の高い操作ではありません。WebSocket を最初に接続するのは、1 つの Ajax 接続よりもわずかに多くのオーバーヘッドです。もちろん、接続後にデータを送信するのは非常に効率的です (同じデータを送信するために新しい Ajax リクエストを作成するよりも効率的です)。

さて、あなたの具体的な質問については:

これが何らかの問題を引き起こすかどうか疑問に思っていますか?

いいえ、問題は発生しません。ページが読み込まれるたびに接続することは、webSockets を使用する通常の方法です。

接続が複数回行われないように、早い段階で接続を試みる必要がありますか?

いいえ、あるページからそれを置き換えるページに接続を渡すことはできません。

もしそうなら、javascriptを介してソケット変数を渡すことは可能ですか?

Javascript を介して同じページ内の他の関数に渡すことはできますが、これを置き換えるページに渡すことはできません。

于 2015-07-25T04:13:08.153 に答える