2017-12-29 39 views
0

の上に私はWebSocketを超えるパブリッシュ/サブスクライブのメカニズムを構築しています。私はWebSocketを動作させていますが、userA、userC、userD(これらはpub/subに登録されている他のユーザ)にメッセージを送信するにはどうすればいいですか?は、送信者、他のユーザーにメッセージを送信する必要はありませんWebSocketを

私はwebsocketsharpを使用していると私は開いているセッションのリストを持っているので、私はのSendToを使用しようとしていたが、私はそれが働いて得ることができません。

私は正しい方向にポイントを必要としています。

ちなみに、私はuserAからサーバーに、サーバーからuserAに簡単に送信できますが、購読しているuserB、userC、userDに転送する方法を理解できません。 sessionQueueは、すべてのセッションが割り当てられている

class DDPServer : WebSocketBehavior, IClientSession 
    { 
     private SessionInfo sessionInfo; 
     public static WebSocketSessionManager sessionQueue { get; set; } 
     // more stuff here 
    } 

は、ここで私が何しようとしてるかの小さなコードスニペットです。

だから、今、私はすべてのセッションを持っています。要求がソケット・サーバによって受信され、(加入ユーザのリストを提供します)パブリッシュ/サブスクライブ・メカニズムを通過し、今私は戻ってのようなものを使用してデータを送信しよう:

DDPServer.sessionQueue.SendTo("test", "3d0f491cfb654dd4839337608b19f849"); 

3d0f491cfb654dd4839337608b19f849セッションIDです。

+0

サーバーに送信し、サーバはクライアントにそれを再送します。 – Gusman

+0

私はそれをサーバーに送信することはできますが、送信側のクライアントに送り返すことはできますが、それを他の購読クライアントに転送するにはどうすればいいですか? – stevelacerda7

+0

説明のためにいくつかのコードを表示できますか?あなたがサーバーから送受信できる場合、あなたの問題が何であるかを理解しているか分かりません。 – Mark

答えて

0

WebSocketSessionManagerはそう.SendTo(「ここでは文字列データ」、「ここに文字列のセッションID」)と私は、他のクライアントに送信することができたことを使用して、オープンな接続を維持します。

私は、チャンネルを登録したユーザーのリストでデータベースに保存し、そのユーザーを引き出し、それらのユーザーに関連付けられているセッションを探して、forループを実行します各セッションをSendToします。

関連する問題