所以,我有一个 HTTP 1.1 web server-ish 正在运行。
当一个典型的 Web 客户端连接时,我会同时获得一堆传入连接。在服务器上,在 LAN 上,我可以将它们区分开来,因为它们都共享相同的 IP。
在 WEB 上,我有一个更具挑战性的问题,因为它们的远程端口可能来自一个路由器,该路由器具有多个动态分配的 Web 客户端端口,共享相同的 IP 地址。除非这些套接字发送一些东西,否则它们是完全匿名的。
无论如何,我想将所有连接捆绑到一个逻辑类中,并在它们发生时简单地识别它们并将它们附加到正确的“事物”上,这样这些连接就可以共享通用数据和凭据。
正如我所说,在我控制的 LAN 上,这并不太棘手。只需输入 IP 地址,它们都是 192.168.xxx.xxx 或 10.0.xxx.xxx 或其他。
在互联网上,IP 地址可能是路由器后面的任意数量的用户,端口相对没有意义(对我来说)。顺序似乎并不能保证,因为如果同一路由器后面的两个用户几乎同时连接,他们可能会得到交错分配的端口,因为他们的浏览器一个接一个地打开一个套接字。因此,百万分之一的情况会发生,这会导致网络规模流量每天出现一百次问题。
当我输入这个时,我意识到这可能不是问题,因为我主要是在做 WebSocket 的东西,而那些其他的连接似乎都是为了抢资源,在我的情况下,这些资源通常是“无害的”。但是在应用程序的“长轮询”版本上支持所有那些糟糕的旧浏览器,这可能是一个问题。我有一个唯一标识符供他们与他们的数据一起发送,所以我可以判断哪个套接字是“游戏中的那个”(现在......但它将来自任意数量的套接字之一),但只有在我之后'已经收到了我的数据。
所以作为一个好奇的项目,我是否正确理解我的情况,或者是否有一些简单的事情我忽略了,这可以让我的生活“更简单”。我的意思是除了放弃希望并成为阿米什人或其他东西。