2012-08-17 73 views
1

我需要一個推送消息服務器的方案。如何使用AutobahnJs將消息發送到指定的客戶端?

現在我選擇AutobahnJs + AutobahnPython方案。通過AutobahnJs圖書館HTML5的

使用的WebSocket連接到由AutobahnPython

現在,客戶端A,clientB使用服務器,clientC連接到服務器。

APPS想發送消息給clientA。怎麼做?

這是我的流程: APPS僞裝成clientD連接到服務器。

在javascript中,使用訂閱頻道,每個客戶端使用相同的訂閱頻道。 clientD向頻道發佈消息(與訂閱頻道相同),服務器消息給訂閱此頻道的所有客戶端。

這是一個問題,我需要APPS(clientD)發送消息給clientA而不是每個訂閱的客戶端。

也許我的流量不正確。任何幫助和更多計劃?

回答

2

您可以通過執行時,在符合條件的參數提供的WAMP會話ID做到這一點發布:

WAMP的會話ID可以通過對會話對象調用的SessionID()在AutobahnJS得到。

http://autobahn.ws/js/reference#Session_sessionid

你的總體方案爲您的使用情況下,正確的:所有客戶端訂閱1個話題,但當時僅指定專用接收機資格獲得發佈的消息。

+0

1.我不明白在Session.publish(主題,事件,排除,合格)中排除參數和符合條件的參數。如何獲取其他會話ID?我只能獲得我自己的sessionID。 2. WAMP會話身份驗證示例不顯示。如何使用會話認證。 3.當我刷新網頁時,會話ID已更改,如何修復sessionid刷新或重新打開網頁? 4.服務器端(autoAbhnPython)如何控制(獲取和存儲)客戶端會話?對不起,這麼多問題打擾你,但我準備好了需要幫助,非常感謝! – user1514160 2012-08-27 03:00:45

+0

會話ID特定於1個WAMP會話,並且只有該會話有生存期。當您重新加載/離開打開WebSocket連接的頁面時,該連接以及WAMP會話消失。當WAMP客戶端連接時,會話ID由WAMP服務器隨機生成。 Exclude/eligible是可選參數,其中包含活動WAMP會話的會話ID。對於客戶端獲取另一個客戶端的會話ID,需要將其作爲RPC響應的一部分或PubSub事件有效內容進行通信。因爲.. – oberstet 2012-08-27 09:31:22

+0

我訪問了你的網站,並且瀏覽了關於AutobahnPython的所有教程,現在我是一個新的pythomer,我可以模仿這些例子,所以外面的例子, 我什麼都不知道。我想要一個可以處理會話的功能,當客戶端斷開連接時,服務器可以處理這個動作。順便說一句:我如何獲得郵件列表?它是谷歌論壇? – user1514160 2012-08-27 10:10:29

相關問題