Node.js 如何使用现有的TLS客户端套接字创建nodejs HTTP服务器?

Node.js 如何使用现有的TLS客户端套接字创建nodejs HTTP服务器?,node.js,ssl,tls1.2,Node.js,Ssl,Tls1.2,我的笔记本电脑上有一个nodejs TLS客户端套接字,连接到另一台计算机(服务器)上的TLS服务器套接字。服务器无法连接到我的笔记本电脑。笔记本电脑需要启动连接 现在我希望服务器向我的笔记本电脑发出请求。其思想是重用HTTP协议。有没有办法使用现有的TLS客户端套接字创建HTTP服务器 这样,服务器可以发出HTTP请求,客户端TLS接收该请求,HTTP服务器将解析该请求?还是我遗漏了什么?一旦您在笔记本电脑和服务器之间打开了TCP套接字,您就可以通过该套接字以任意一种方式发送数据。因此,如果服

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

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


这样,服务器可以发出HTTP请求,客户端TLS接收该请求,HTTP服务器将解析该请求?还是我遗漏了什么?

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

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


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

但这里的目标是避免在套接字的两侧实现我自己的协议。我们的想法是使用nodejs http代理来处理请求的http格式化和验证。@Mr.Goferito-然后按照我的建议使用socket.io。它为你做所有的礼仪工作。您可以通过任何一种方式发送包含数据的消息,这比http更容易。而且,正如我所说,没有简单的方法可以挂接一个持久的http服务器,您可以将许多请求发送到现有的套接字中。实际上,您必须通过套接字对http进行隧道传输。真是一团糟。一个socket.io连接将花费我不到15分钟的时间来实现。您必须在两端安装socket.io,并查看如何设置连接和发送消息,但要比IMO的备选方案简单得多。我已经有了一个工作TLS连接,并且我可以双向发送文本数据。我只是想避免创建自己的协议。另外,在我谦逊的尝试中,我的想法是创建一个http服务器,并以某种方式将其配置为在现有套接字上侦听。不仅仅是通过套接字抛出HTTP块。如果您将TLS套接字更改为socket.io套接字,那么您就不必发明自己的协议,因为socket.io已经为您实现了这一点。io基于webSocket,该webSocket专门用于使用现有的基于消息的协议通过持久连接发送双向消息。它是专为你想做的事情而设计的。我建议用它。为什么您要避免使用专门为您正在做的事情而构建的机制和库?