我會盡力解釋我想要達到的目標。C#客戶端到客戶端消息傳遞
想象兩個用戶正在使用的窗口的形式應用中,當用戶A打開的鎖被施加到數據記錄的形式底層,使得只有該用戶可以在該時間的變化的具體形式。
用戶B有一列所有記錄(網格中),其中包含對用戶A已經打開的記錄的引用。我們想要做的是當用戶A打開記錄時用戶B的記錄列表是更新爲顯示該行旁邊的鎖定圖標以指示該記錄正在使用中。
這是我們用短信做一個簡單的例子,但你的想法,用戶A做了用戶B需要知道它。
我已經使用Jabber網爲C#和Openfire的Jabber服務器實現的系統。基本上,當要發送消息時,會將新行插入到數據庫中的消息表中。消息表由服務客戶端使用SqlDependancy對象監視,以便當新消息準備就緒時,服務將生成相關消息並通過Jabber和OpenFire服務器將其發送到所需的客戶端。
該工程確定,但是的Openfire的開箱即用的功能是支持這顯然不是我想要實現即時消息。我遇到的問題是,如果用戶登錄到兩個應用程序上下文(即測試和實時),則OpenFire不知道向消息發送哪個消息,因爲user @ server/resource的JID結構不會注意到該資源。
基本上我目前使用的Openfire和Jabber網的方式是不完全正確。
是否有一個模式,我可以使用實現我想要實現,即消息發送到客戶端告訴它做一些什麼,同時能夠指定要發送的消息太多的客戶端。 XMPP看起來像是答案,因爲我可以構建自己的消息類型進行解析。
我的應用程序是一個Windows Forms,.NET 3.5 C#應用程序。
就個人而言,這聽起來像是一個很好的選擇和消耗性的選擇。 – kenny 2009-06-25 11:09:26