将Socket.IO套接字传输到另一台服务器

时间:2015-12-29 23:09:36

标签: node.js socket.io

如何在每次发送数据时将连接到服务器A(使用Socket.IO)的Websocket传输到服务器B,并且能够从服务器B将数据发送到该套接字。但最重要的是套接字不应该能够直接向服务器B发送数据,进入服务器的所有数据都必须转到服务器A.我是否能够将套接字对象从服务器A传递给B?注意:正在从服务器A验证任何请求服务器B获取的内容。

我希望这并不像措辞那样令人困惑。这是一个文本图表。

套接字 - >服务器A - >服务器B - >套接字

1 个答案:

答案 0 :(得分:1)

您无法将套接字从一台服务器传递到另一台服务器。给定的TCP套接字(socket.io所基于的)仅在两个特定端点之间,并且一旦套接字连接就无法更改。

您的问题并不完全清楚,但听起来好像您只是希望服务器A像客户端连接到服务器A的代理一样,然后服务器A可以决定将一些数据转发到服务器B.您可以使用支持您的身份验证方法的预先存在的代理服务器代替服务器A,或者如果您已经拥有服务器A进程,则可以通过向服务器B发送适当的信息包来为其添加代理功能。 / p>

或者,您可以将套接字连接到服务器A,通过服务器A进行身份验证,并作为该连接的一部分,它可以接收一个令牌,然后它可以用来直接连接到服务器B.服务器A和B将共享访问某些“令牌存储”,以便服务器B可以检查令牌存储以查看是否有任何传入连接已提供有效令牌。