0

だから、私はHTTP 1.1 Webサーバーっぽいものを実行しています。

一般的な Web クライアントが接続すると、多数の着信接続が一度に取得されます。サーバー上、LAN 上では、それらはすべて同じ IP を共有しているため、それらを区別できます。

Web では、より困難な問題があります。リモート ポートが、同じ IP アドレスを共有する複数の動的に割り当てられた Web クライアント ポートを持つルーターから来ている可能性があるためです。これらのソケットが何かを送信しない限り、それらは完全に匿名です。

とにかく、すべての接続を 1 つの論理クラスにまとめて、それらを自明に識別し、発生したときに適切な「もの」に関連付けて、これらの接続が共通のデータと資格情報を共有できるようにしたいと考えています。

私が言うように、私が管理している LAN では、これはそれほどトリッキーではありません。IP アドレスからキーを取得するだけで、すべて 192.168.xxx.xxx や 10.0.xxx.xxx などになります。

インターネットでは、IP アドレスはルーターの背後にある任意の数のユーザーである可能性があり、ポートは比較的無意味です (私にとって)。同じルーターの背後にある 2 人のユーザーがほぼ同時に接続すると、ブラウザーが次々とソケットを開くため、インターリーブされたポートが割り当てられる可能性があるため、シーケンシャルであることは保証されないようです。したがって、これは 100 万回に 1 回発生し、Web 規模のトラフィックで 1 日に 100 回問題が発生します。

これを入力しているときに、これは問題ではない可能性があることに気付きました。私は主に WebSocket のことを行っているためです。これらの他の接続は、私の場合は一般的に「無害」なリソースを取得するためのもののようです。しかし、アプリの「ロング ポーリング」バージョンでは、それらすべての使い古された古いブラウザをサポートするため、これが問題になる可能性があります。私は彼らがデータと一緒に送信するための一意の識別子を持っているので、どのソケットが「ゲームからのもの」であるかを知ることができます (今のところ... しかし、それは任意の数のソケットの 1 つから来ます)。そこから私のデータを受け取りました。

好奇心の項目として、私は自分の状況を正しく理解していますか、それとも私が見落としている簡単なことで、私の人生を「はるかにシンプル」にする可能性があります. 希望を捨ててアーミッシュか何かになる以外にね。

4

0 に答える 0