2011-03-15 90 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

相關問題