客户端之间的消息传递没有轮询

时间:2011-03-15 12:43:52

标签: client-server message-queue messaging amqp service-broker

我有一个MS SQL服务器网络,它们与连接到它们的(C ++ / C#)客户端相互连接。而我是在设计客户端和服务器 - 客户端消息传递之间的消息传递方式。 我已经阅读了有关MS SQL Service Broker和Apache Qpid等其他Broker的内容。 但我仍然无法知道这将如何运作,我会感谢有人可以为我提供更好的消息来源,或者如果某人已经处理过这样的问题。

如何在不可能的情况下在客户端之间发送和接收消息?

请确保这不是学校的家庭作业或大学课程项目。

我非常感谢任何有用的评论或建议......

+++ +++感谢

3 个答案:

答案 0 :(得分:0)

为什么不投票?这很容易,“最可能有用的东西”。

我建议你考虑投票,除非你已经确定了轮询的问题。

考虑:

  1. 及时性。收到消息的速度有多快?
  2. 频率。每小时向每个客户端发送多少条消息?每天?
  3. 另外,如果你的应用程序有一个连接心跳,你可以让它报告是否有任何新消息,一石二鸟。

答案 1 :(得分:0)

如果你害怕做某事

//PSUDO Code
while(!stopped){
   try{
     message = receiver.fetch(timeout);
   }catch(TimeoutException){
     //handle
   }

}

您可以随时预取,设置预取:

  receiver.setCapacity(100);

然后你可以使用可用的消息功能,但在所有现实中,这听起来像是以向后的方式轮询;)

答案 2 :(得分:0)

MSDN有很多关于SQL Service Broker的技术信息。这是相当高级别的,但如果你仔细阅读/阅读,你很快就会成为专业人士。

http://msdn.microsoft.com/en-us/library/ms166043%28SQL.90%29.aspx

互联网上还有一堆有用的代码示例可以让您启动并运行,以便您可以开始试验。

http://blogs.msdn.com/b/sql_service_broker/
http://www.mssqltips.com/tip.asp?tip=1836

最好的运气!