我正在编写一个基本上只存在NAT穿孔的节点HTTP服务器。它的工作是促进客户端发送文件,以及另一个接收该文件的客户端。
编辑:客户端是其他节点进程,而不是浏览器。我们正在使用Websockets,因为某些客户端位置不允许非HTTP / S端口连接。
整个过程的工作原理如下:
Alice
)通过Websocket通知服务器它想要另一个客户端(Bob
)的文件。Alice
它应该从/downloads?token=xxxx
下载文件。 Alice
连接,连接保持打开状态。Bob
它应将文件上传到/uploads?token=xxxx
。 Bob
已连接并开始上传文件,因为Alice
已在另一方收听。这一切都是通过存储req
对象内的HTTP res
和transfers
对象的引用来实现的,这些对象由token
索引。这一切都很有效......只要我没有聚集服务器。
过去,当我使用群集时,我已将服务器转换为无状态。但是,这不起作用:我需要 req
和res
对象存储在一个状态中,以便我可以管道数据。
我知道我可以将传输数据缓冲到磁盘,但我宁愿避免这种情况:如果可能的话:部分要求是如果我将任何东西缓冲到磁盘上我必须加密它,而我宁愿避免放置加密/解密服务器上的瞬态数据的附加负载。
有没有人对如何以支持群集的方式实现这一点有任何建议,或指向我可以看到的其他研究资源的指针?
非常感谢!