2

エクスプレスバックエンドでスケーリングしようとしています。問題は、ユーザーが来るたびに、またはサーバーを再起動すると、新しい socket.id が取得されることです。さらに、[Circular JSON] 問題が発生するため、ソケット全体をメモリに保存できません。ソケットの一部を redis に保存して、他のサーバーから同じソケットを取得できるようにするにはどうすればよいですか?

4

1 に答える 1

4

ユーザーを socket.id から分離する必要があります。socket.id は揮発性であり、ブラウザを更新しても変更される可能性があります。代わりに、ユーザー ソケットが接続するときに、渡されたハンドシェイク データを確認し、それを使用してソケットをユーザーに関連付けます。redis でソケット データを永続化する限り、それはsocket.io-redisを使用して既に処理できます。

socket.io のスケールアウトについては、次のリンクをご覧ください: http://socket.io/docs/using-multiple-nodes

于 2014-12-11T01:19:52.927 に答える