私は、React Routerを使ってReact/Reduxアプリケーションをルーティングしています。反応ルータでwebsocket接続を維持する
このアプリの一環として、websocket接続を設定しました。私が直面している問題は、URLに直接ナビゲートすると、接続が切断されるということです。例えば
:接続が確立されてwww.app.com/
- ユーザーの土地。
- React Router browserHistory経由でユーザのナビゲートを
www.app.com/link
に送信します(このページに接続するためのコードはありません)。 - 接続が維持されます。
期待どおりに動作します。しかし:www.app.com/
- ユーザー土地は確立されています。
- ユーザーがアドレスバーに入力する(または前の例を経由して、それに移動した後にページを更新して
/link
に直接移動します。 - 接続が切断。
は、この予想される動作ですか?そういずれかがある場合Redux/React Routerのパターンを避けるには?毎回手動で接続を再確立する必要がありますか?
クライアント側のルーティングとサーバー側のルーティングについて知っていますか? – Jayce444
これまでのところ、このアプリはサーバレスであることが計画されていました。したがって、すべてがクライアント側であり、それは 'app.com /'以外のリクエストをキャッチするためにRoute53でS3上でホストされます –
websocketの部分についてはわかりませんが、手動でリンクにナビゲートするとそのファイルをサーバーに照会し、クライアント側のみがルートとして存在する場合は404を取得し、失敗するでしょう。これを解決するには、バックエンドのすべてのパスをキャッチする必要があります(明示的に 'app.get(' * '、(req、res)=> {res.sendFile(' index.html ')}) ; 'これは、手動でURLを入力するか、ページを更新する場合にトリガされます。あなたのケースでは、サーバー側とwebsocketに対して、特定のReactルートに関係なく接続が確立されるように設定する必要があります) – Jayce444