Java 连接发送方和接收方的好设计模式是什么?
我试图实现连接发送方和接收方进行文件传输的逻辑,即发送方和接收方之间的握手。我想象的基本高级工作流是 *注意:发送方只能有一个接收者,这意味着只有一个接收者可以“下载”发送方正在发送的文件Java 连接发送方和接收方的好设计模式是什么?,java,design-patterns,jetty,Java,Design Patterns,Jetty,我试图实现连接发送方和接收方进行文件传输的逻辑,即发送方和接收方之间的握手。我想象的基本高级工作流是 *注意:发送方只能有一个接收者,这意味着只有一个接收者可以“下载”发送方正在发送的文件 我使用长时间轮询服务器,这使得处理异步事件变得容易,但我不确定如何处理设计方面的问题。对于上面的工作流,*发送方和接收方之间的握手是一种好的设计模式?我的goto策略是使用JMS队列解决这类问题。有各种各样的实现,有大量的选项。您可以专门寻找“带外”文件传输,这基本上就是您所描述的:从服务器传输指向客户端下载
我使用长时间轮询服务器,这使得处理异步事件变得容易,但我不确定如何处理设计方面的问题。对于上面的工作流,*发送方和接收方之间的握手是一种好的设计模式?我的goto策略是使用JMS队列解决这类问题。有各种各样的实现,有大量的选项。您可以专门寻找“带外”文件传输,这基本上就是您所描述的:从服务器传输指向客户端下载的文件的令牌(消息)。此外,这也符合您的1接收器下载要求。JMS队列可以配置为通过事务锁定只允许每条消息有一个客户端 不知道这是否真的回答了你的问题,但这可能是一个开始 编辑: 如果您是JMS的新手,那么最好从使用ActiveMQ开始: 您可能希望实现自己的“BlobMessage”,或者只使用常规消息并处理通过它传递的url JMS有很多可用的资源,因为它是一个如此古老的标准
希望这有帮助 文件的实际发送已经实现,并且可以正常工作。我更感兴趣的是发送者/接收者之间的握手。我想再次理解你的问题,你是在问下载给定文件后使用什么策略吗?不是。。。我想知道如何在传输开始前设计发送者和接收者之间的握手,然后我的答案就成立了。我将使用jms队列来处理使用消息(aka token)的握手。。。然后使用给定的实现“带外”下载文件。在响应中添加一些资源链接。
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