node.js - 如何使用现有的 TLS 客户端套接字创建 nodejs HTTP 服务器?
问题描述
我的笔记本电脑上有一个 nodejs TLS 客户端套接字,连接到另一台计算机(服务器)上的 TLS 服务器套接字。服务器无法连接到我的笔记本电脑。笔记本电脑需要启动连接。
现在我希望服务器向我的笔记本电脑发出请求。这个想法是重用 HTTP 协议。有没有办法使用现有的 TLS 客户端套接字创建 HTTP 服务器?
这样,服务器机器可以发出一个HTTP请求,客户端TLS接收,HTTP服务器会解析它吗?还是我错过了什么?
解决方案
在笔记本电脑和服务器之间打开 TCP 套接字后,您可以通过该套接字以任何一种方式发送数据。所以,如果服务器想向笔记本电脑发送一些查询,它就可以这样做。您必须在 TCP 之上发明自己的协议才能做到这一点,但如果您愿意,它可以像基于文本/行的协议一样简单。
或者,您可以建立一个从笔记本电脑到服务器的 webSocket 或 socket.io 连接(而不是纯 TCP 连接),而不是建立一个普通的 TCP 连接,然后任何一方都可以以任何一种方式发送消息,并且协议部分已经被占用照顾。如果您使用socket.io,如果连接中断,它也会自动重新连接。
没有简单的方法可以将 HTTP 服务器连接到现有的 TCP 套接字,而且它也会充满困难,因为 HTTP 连接通常不是一个连续的连接,您可以通过它发送许多单独的请求(http 的高级版本可以做到这一点,但是我怀疑你想在两端实现所有这些逻辑)。您可以在现有的 TCP 套接字上使用 HTTP 协议,但这可能比仅使用上面的 webSocket/socket.io 想法要实现更多的工作。
推荐阅读
- polygon - 具有多数据的 Paraview
- javascript - 基于数字出现的数组返回元素
- linux - cat 标准输出和文件中字节的差异
- java - 当不在 WebContext 而不是 OidcConfiguration 中时 Pac4J OIDCConfigurationContact 范围总是“openid profile email”有什么原因吗
- c++ - 我可以在不是从 QObject 派生的类中使用 Q_PROPERTY 或 Q_INVOKE 吗?
- reactjs - 如何使用扩展运算符复制嵌套对象属性
- javascript - 生产中的 i18n 导致尝试键入输入时超出最大深度
- javascript - 如何在Javascript中将数组中的真实值相加?
- python - 有效地在较大图像中找到图像的最佳拟合位置
- visual-studio - 尝试安装maya插件向导,但Visual Studio中没有文件夹vcprojects,怎么办?