从服务器到客户端的请求

从服务器到客户端的请求

问题描述:

我已经对网络套接字有所了解了,它们很棒,它们的问题在于它们必须保持连接畅通才能进行通信。从服务器到客户端的请求

我有一个小系统,服务器不时必须更新状态并通知客户端,并且保持连接从每个客户端打开并不是那么理想。同时,客户端更新必须及时进行,这一点非常重要。

所以我的问题是,如果服务器有一个唯一的地址客户端有一个公共的临时地址,服务器可以发送请求?因此,当客户端连接到服务器时,它将提供唯一的地址,服务器将缓存它,当有更新时,服务器将把请求发送到该地址?

我知道地址会不断变化会出现很多问题,但这已经是其他问题了。

如果客户端没有专用的IP地址,那么它不能从广域网中获得,除非它与其中的任何节点有开放连接。

当客户端从本地网络向服务器发送请求时,客户端会记住客户端的本地IP地址和端口,并使用NAT协议将其转换为路由器的空闲端口之一,然后使用路由器自己的“IP- IP协议头中的发送者地址和TCP头中的“发送者端口”。当路由器得到服务器的响应时,它使用内存中的NAT表将地址转换回来并将数据传送给客户端。服务器和客户端之间的连接处于打开状态时,地址通常保存在NAT表中。因此,如果服务器和本地网络客户端之间没有打开的连接,则服务器将无法与客户端连接,因为服务器不知道如何访问它。

你说你有一个小系统。那么为什么你认为你的服务器没有足够的空闲端口来处理websocket?如果您只想从服务器获取更新(而不是通过持续打开的连接发送和获取数据),则可能会发现长轮询或SSE更合适。它比websockets更容易实现。