2011-03-15 62 views
-1

我有连接到彼此的(C++/C#)客户端连接到他们的MS SQL服务器的网络。而我正在设计一种客户端和服务器 - 客户端消息传递之间的消息传递方式。 我已经阅读了关于MS SQL Service Broker和Apache Qpid等其他代理的信息。 但我仍然无法找到如何工作,我会感激的是,有人可以提供给我更好的资源,或者如果有人已经处理过这样的问题。没有轮询的客户端之间的消息传递

我怎样才能使客户之间发送和接收消息而不可能?

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

我真的很感激任何有帮助的意见或建议...

+++感谢+++

+0

你来回发送什么类型的消息?你计划一个经纪人/服务器? – Nix 2011-03-15 12:52:25

+0

你究竟是什么意思,“我不知道这项工作将如何”?你找不到任何代码? Techincal(架构)信息?从概念?请澄清。 – 2011-03-15 12:53:54

+0

我的意思是使用代码示例的Techincal(体系结构)信息。 – 2011-03-15 13:00:50

回答

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

好运!

+0

thanx为例子链接..他们很有用.. – 2011-03-15 15:22:46

0

为什么不能查询?这很容易,这是“可能有用的最愚蠢的东西”。

我建议你考虑轮询,除非你确定轮询的问题是什么。

注意事项:

  1. 及时性。多久才能收到邮件?
  2. 频率。每小时向每个客户端发送多少条消息?每天?

另外,如果你的应用程序有一个连接心跳,无论如何,你可以让它报告是否有任何新的消息并杀死两只鸟。

+0

我认为很明显他不想投票。 – 2011-03-15 12:52:47

+0

好,本人,我不喜欢轮询,因为它会导致交通,这会降低我的网络的性能与它会导致的负载,此外,我不能预测消息通信量,没有频繁的消息。一条消息可能在今天发送,第二天可能发送一百条消息。那就是为什么不投票。我更喜欢推动信息而不是投票;) 所以你怎么看? – 2011-03-15 12:57:19

+0

@ A.R。有时当有人说“我该如何做X”时,最好的答案是“不要做X做Y”。情况就是这样。 @ user660558,流量多少?几百字节,实际上是一对网络数据包。轮询很简单,应该需要半天的时间来执行,并且只占网络流量的一小部分。我的建议是确保你知道**为什么投票不够好,然后再拒绝。 **做数字**。 – Ben 2011-03-15 13:09:15

0

如果你是affraid做的

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

} 

你总是可以预取,设置预读:

receiver.setCapacity(100); 

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

+0

可能会发布/订阅? bcoz我的消息是有catigories通知..你怎么看? – 2011-03-15 13:03:06

相关问题