首页 > 解决方案 > 如何使用现有的 TLS 客户端套接字创建 nodejs HTTP 服务器?

问题描述

我的笔记本电脑上有一个 nodejs TLS 客户端套接字,连接到另一台计算机(服务器)上的 TLS 服务器套接字。服务器无法连接到我的笔记本电脑。笔记本电脑需要启动连接。

现在我希望服务器向我的笔记本电脑发出请求。这个想法是重用 HTTP 协议。有没有办法使用现有的 TLS 客户端套接字创建 HTTP 服务器?

这样,服务器机器可以发出一个HTTP请求,客户端TLS接收,HTTP服务器会解析它吗?还是我错过了什么?

标签: node.jsssltls1.2

解决方案


在笔记本电脑和服务器之间打开 TCP 套接字后,您可以通过该套接字以任何一种方式发送数据。所以,如果服务器想向笔记本电脑发送一些查询,它就可以这样做。您必须在 TCP 之上发明自己的协议才能做到这一点,但如果您愿意,它可以像基于文本/行的协议一样简单。

或者,您可以建立一个从笔记本电脑到服务器的 webSocket 或 socket.io 连接(而不是纯 TCP 连接),而不是建立一个普通的 TCP 连接,然后任何一方都可以以任何一种方式发送消息,并且协议部分已经被占用照顾。如果您使用socket.io,如果连接中断,它也会自动重新连接。

没有简单的方法可以将 HTTP 服务器连接到现有的 TCP 套接字,而且它也会充满困难,因为 HTTP 连接通常不是一个连续的连接,您可以通过它发送许多单独的请求(http 的高级版本可以做到这一点,但是我怀疑你想在两端实现所有这些逻辑)。您可以在现有的 TCP 套接字上使用 HTTP 协议,但这可能比仅使用上面的 webSocket/socket.io 想法要实现更多的工作。


推荐阅读