我想传递一个 tls.CleartextStream
工作进程的实例(由 cluster.fork() 方法创建)。虽然我可以使用 send(message, handle) 发送 net.Socket
实例方法 我不能使用 ClearStream 类做同样的事情。
是否有一种方法可以通过序列化原始的 CleartextStream 实例来“重新包装”连接的原始套接字?
这就是我想要实现的:Node.js 应用程序的主进程正在监听 TLS 连接。有许多特定的工作进程在启动时产生。连接到主进程的客户端希望被重定向到某个工作进程。因此master应该将socket发送给相应的worker进程。这实际上有效,但随着 TLS 上下文丢失,工作进程既不能对数据进行解码也不能编码以与连接的客户端通信。
你知道这是如何实现的吗?
最佳答案
以安全可信的方式传递已连接的 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/