Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接发送方和接收方的好设计模式是什么?_Java_Design Patterns_Jetty - Fatal编程技术网

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