客户端连接到基于websocket的api-gateway-server。我可以保存此客户端的某种引用/地址,以便从另一台服务器向该客户端发送事件吗?
答案 0 :(得分:1)
如果您使用socket.io并拥有客户端ID,则可以发送客户端事件。您可以在服务器之间代理事件,最后将其发送到客户端。但客户端必须连接到任何服务器上。如果客户端处于脱机状态,则无法发送事件。
来自文档https://socket.io/docs/rooms-and-namespaces/#default-room
Socket.IO中的每个Socket都是由一个随机的,不可思议的, 唯一标识符Socket#id。为了您的方便,每个插座 自动加入由此ID标识的房间。
要将活动发送到任何房间使用:
io.to('some room').emit('some event');
您可以使用用户ID执行任何操作,将其放在您想要的任何位置但最终您必须使用相同的用户ID从与用户保持套接字连接的服务器向该用户发送事件