集群客户端进行文件传输的集群HTTP服务器

时间:2018-02-22 19:26:34

标签: node.js

我正在编写一个基本上只存在NAT穿孔的节点HTTP服务器。它的工作是促进客户端发送文件,以及另一个接收该文件的客户端。

编辑:客户端是其他节点进程,而不是浏览器。我们正在使用Websockets,因为某些客户端位置不允许非HTTP / S端口连接。

整个过程的工作原理如下:

  1. 所有客户都保持开放的websocket连接。
  2. 接收客户端(Alice)通过Websocket通知服务器它想要另一个客户端(Bob)的文件。
  3. 服务器为此事务生成唯一令牌。
  4. 服务器通知Alice它应该从/downloads?token=xxxx下载文件。 Alice连接,连接保持打开状态。
  5. 服务器通知Bob它应将文件上传到/uploads?token=xxxxBob已连接并开始上传文件,因为Alice已在另一方收听。
  6. 传输完成后,两个连接都将关闭。
  7. 这一切都是通过存储req对象内的HTTP restransfers对象的引用来实现的,这些对象由token索引。这一切都很有效......只要我没有聚集服务器。

    过去,当我使用群集时,我已将服务器转换为无状态。但是,这不起作用:我需要 reqres对象存储在一个状态中,以便我可以管道数据。 我知道我可以将传输数据缓冲到磁盘,但我宁愿避免这种情况:如果可能的话:部分要求是如果我将任何东西缓冲到磁盘上我必须加密它,而我宁愿避免放置加密/解密服务器上的瞬态数据的附加负载。

    有没有人对如何以支持群集的方式实现这一点有任何建议,或指向我可以看到的其他研究资源的指针?

    非常感谢!

0 个答案:

没有答案