node.js - 将 tls.CleartextStream 实例传递给工作进程

标签 node.js sockets tcp ssl

我想传递一个 tls.CleartextStream工作进程的实例(由 cluster.fork() 方法创建)。虽然我可以使用 send(message, handle) 发送 net.Socket 实例方法 我不能使用 ClearStream 类做同样的事情。

是否有一种方法可以通过序列化原始的 CleartextStream 实例来“重新包装”连接的原始套接字?

这就是我想要实现的:Node.js 应用程序的主进程正在监听 TLS 连接。有许多特定的工作进程在启动时产生。连接到主进程的客户端希望被重定向到某个工作进程。因此master应该将socket发送给相应的worker进程。这实际上有效,但随着 TLS 上下文丢失,工作进程既不能对数据进行解码也不能编码以与连接的客户端通信。

enter image description here

你知道这是如何实现的吗?

最佳答案

以安全可信的方式传递已连接的 TLS 连接是一个难题。

最简单的方法是在 Master 进程上进行 TLS 解码/编码,然后将数据本身发送给各个 worker。为了保持该网络连接的安全性,您可以在主服务器和工作服务器之间创建另一个 TLS session 。主要警告是性能瓶颈的可能性

您可以使用 stream.pipe http://nodejs.org/api/stream.html#stream_stream_pipe_destination_options将两个 TLS 流相互双向连接。

编辑:只需更仔细地阅读问题。由于工作进程在同一台机器上,您不必在主进程和工作进程之间使用 TLS。

关于node.js - 将 tls.CleartextStream 实例传递给工作进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12971738/

相关文章:

node.js socket.io 中间件

angularjs - 使用 Node.js 和 AngularJS 提供静态文件

python - python TCP服务器中的主要功能没有生成输出

c - 查找服务器的IP和端口

node.js - 使用 NodeJS 进行 Active Directory 身份验证

java - 从 Cloud Foundry Node 应用程序调用 Java 命令

scala - Scala中最简单的过程通讯形式

java - 如何在android中用Java发送数据报包

python - 什么更快 : multiple `send` s or using buffering?

javascript - Node.js 中的同步 TCP 读取