我正在尝试实现连接发送方和接收方以进行文件传输的逻辑,即发送方和接收方之间的握手。我想象的基本高级工作流程是......
Sender : prep for transfer, create token, wait for receiver to connect Receiver : access download URL using token, wait for sender to start sending Sender : confirm Receiver has connected / is waiting, send Receiver : receive
* 注意:发送者只能有一个接收者,这意味着只有一个接收者可以“下载”发送者发送的文件
我正在使用Jetty Continuations对服务器进行长轮询,这使得处理异步事件变得容易,但我不确定如何处理设计方面。上述工作流程的优秀设计模式是什么,* 握手 *在发件人和收件人之间?
答案 0 :(得分:2)
我的goto策略是使用JMS队列来解决这类问题。有很多选项,有各种各样的实现。您可以专门查找“Out Of Band”文件传输,这基本上就是您所描述的:从服务器传输令牌(消息),该服务器指向客户端要下载的文件。此外,这符合您的1接收器下载要求。可以将JMS队列配置为仅通过事务锁定为每个消息允许单个客户端。
不知道这是否真的能回答你的问题,但它可能是一个开始的地方。
修改强>
如果你是JMS的新手,一个好的起点就是搞乱ActiveMQ:
Doc referencing out of band file transfer 您可能希望实现自己的“BlobMessage”,或者只使用常规消息并处理通过它的URL。
JMS有很多可用的资源,因为它是一个旧标准。</ p>
希望这有帮助!