0

このトピックに関する解決策や情報はまだ見つかりませんでした。基本的に私はフラスコ、socketioとangularjsとチャットアプリを開発しています。私はangularjsを持つ単一のページアプリケーションを作成しました。たとえば、登録ボタンをクリックすると、実際には新しいページにルーティングされていなくても、このページが表示されます。問題は、登録ボタンをクリックするか、別のソケット接続が作成されたビューを切り替えるときです。だから私は3つのソケットが作成されたので、メッセージを送信するためにチャットアプリのビューに戻るときに3つのメッセージを送信します。最初は1つはビューを登録するために行ったとき、もう1つはチャットアプリケーションビューに戻ったときに3番目のソケット接続が作成されたものです。だから私はこの動作に関するいくつかの質問があります:角度のある単一ページのアプリケーションとソケットの複数のソケット

これはまだ起こりますか?

非SPAでページを切り替えるとソケットが切断されますか?

私の問題では、SPAのビューを変更すると別のソケットが作成されますが、ソケットは削除されません。 1回の送信メッセージイベントに対して複数のメッセージ/イベントを送信しないように、複数のソケット接続を回避するにはどうすればよいですか?

ありがとうございます。

答えて

1

非SPAの場合でもこの現象は起こりますか? 非SPAのページを切り替えるとソケットが切断されますか?非SPAで

あなたがあるページから別のページに移動すると、ブラウザが古いページがまだ開いているすべての接続を削除します。各ページは完全に別々のコンテキストで動作します。

SPAでは、ソケット作成コードを最上位モジュールに移動する必要があります。これは、アプリケーションが初期化されたときにのみ実行され、あるページから別のページに切り替えるときには実行されません。したがって、アプリケーションの使用期間中に単一のsocketioインスタンスを使用します。

+0

ありがとうございます。私は、angle-socket-ioラッパーを使用して終了し、それは、重複ハンドルイベントの作成を止めるためのforwardというメソッドを持っています。しかし、将来私はあなたのアドバイスを取るでしょう。 – sebenalern

関連する問題