2012-03-06 58 views
1

我试图实现连接发送者和接收者的文件传输逻辑,发送者和接收者之间的握手。基本的高级别工作流程我想象的是...什么是连接发送者和接收者的好设计模式?

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 

* :只能有一个接收到发送者,也就是只有1个接收器可以“下载”文件发件人发送

我使用Jetty Continuations长轮询服务器,使处理异步事件容易,但我不知道如何处理设计方面。上述工作流程的优秀设计模式是什么?发送者和接收者之间的握手 * * *

回答

2

我的goto策略是对这类问题使用JMS队列。有很多种实现方式可供选择。您可能会特别寻找“带外”文件传输,这实质上就是您所描述的:从服务器传输指向客户端要下载的文件的令牌(消息)。此外,这符合您的1接收器下载要求。 JMS队列可以配置为仅允许通过事务锁定为每个消息分配一个客户端。

不知道这是否真的回答你的问题,但它可能是一个开始的地方。

编辑:

如果您是全新到JMS,一个良好的开端将与ActiveMQ的乱搞:

Homepage link

Doc referencing out of band file transfer 你可能会想实施你自己的“BlobMessage”或者只是使用常规的消息并处理通过它的url。

Oracle JMS 1.1 Tutorial

有很多可用的JMS资源,因为它是这样一个老的标准。

希望这会有所帮助!

+0

该文件的实际发送已经实施并起作用。我更感兴趣的是发送者/接收者之间的握手 – Hristo 2012-03-06 20:51:21

+0

试着再次消化你的问题,你问下载给定文件后要使用什么策略? – 2012-03-06 20:58:13

+0

nope ...我试图弄清楚如何设计发件人和收件人之间的握手*转移开始前 – Hristo 2012-03-06 21:02:10

相关问题