任何有助于使用套接字实现异步通信的设计模式?

时间:2009-12-05 15:31:15

标签: design-patterns sockets asynchronous

以下是我想要完成的内容的简要说明。

我正在使用套接字开发对等应用程序。我希望我的所有通信都是异步的。当一个对等体会向另一个对等体询问某些东西时,它会向他发送标记有唯一ID的请求。他还将存储这些信息,他应该怎么做,他会收到一个回复​​标记为他刚刚发送的身份证件。收到此请求的对等方将执行请求或将其传递给他认为可以执行该请求的其中一个对等方。现在,实际执行此请求的最后一个对等体将直接将响应发送给发起此请求的人。

还有其他一些设计可供选择,例如为每个请求启动一个新线程或使用带有线程的回调,但我想使用简单的消息传递方案和套接字。

我可以使用任何好的设计模式吗?即发送请求,忘记它或在其他开始做一些工作,然后当我得到我的请求的响应时,我应该知道下一步该做什么。我可以发送嵌入在对象中的这些信息,即下一步做什么,或者我可以将它存储在以msg id作为密钥的哈希表中。

你能想出任何好的设计吗?

2 个答案:

答案 0 :(得分:5)

reactor模式(参见本维基百科文章指出的施密特的PDF)是一个开始。 Schmidt的大部分工作与你的问题密切相关,尤其是。 volume 2他的纪念片。

答案 1 :(得分:0)