【发布时间】:2018-01-05 18:17:26
【问题描述】:
我的情况是,我在后端使用 tcp 连接将数据从服务器 A 流式传输到服务器 B。服务器 A 正在运行客户端以与数据库通信。 SERVER B 正在运行 Web 服务器来处理来自客户端的请求。 SEVER B 需要通过 Web 套接字将数据从 SERVER A 流式传输到 CLEINT。
i.e. A -tcp-> B -websocket-> CLIENT
当前,当客户端在 /websocket 处请求页面时,我正在服务器 B 上打开一个 Web 套接字。 /websocket 将返回 html 页面以在服务器 B 上建立连接 websocket。一旦建立连接,我将在 websocket 打开时打开到服务器 A 的新 tcp 连接,并通过 websocket 连接将数据从 B 的 tcp 连接传递到 A 到客户端.
i.e.
CLIENT -> GET /websocket -> SERVER B -tcp-> SERVER A
SERVER A -data-> SERVER B -data> CLIENT
我对 TCP 连接及其协议的理解相当有限。据我所知,TCP 连接中存在一个 Web 套接字,但通过不同的协议(HTTP?)传输数据。在this video 中对它们的工作方式进行了详尽的描述,尽管其中很多内容都超出了我的想象。有一节她描述了“密钥”字符串如何从客户端传递到服务器,服务器神奇地生成一个“接受”字符串并向客户端发送响应。
这可能是一个愚蠢的问题,但我想知道是否有某种方法可以将密钥从客户端通过服务器 B 转发到服务器 A,而无需创建从服务器 B 到客户端的 tcp 连接。这里的目标是让 CLIENT 在 /websocket 被命中时只创建一个到 SERVER A 的连接。
i.e.
CLIENT -websocketKey-> SERVER B -websocketKey-> SERVER A -websocketAccept-> SERVER B -websocketAccept-> CLIENT
感谢您的帮助,由于我在这方面缺乏经验,请在您的回复中保持友好。
【问题讨论】:
标签: javascript tcp websocket tcpclient