我在websockets上构建发布/订阅机制。我有websocket工作,但如何将消息从userA发送到userB,userC和userD(这些是订阅pub / sub的其他用户)。
我使用websocketsharp并且我有打开的会话列表,所以我尝试使用SendTo,但我无法使用它。
我只需要一个正确方向的点。
顺便说一句,我可以轻松地从userA发送到服务器,从服务器发送回用户A,但我无法找到如何转发给同时订阅的userB,userC,userD。
这是我尝试做的一小段代码:
class DDPServer : WebSocketBehavior, IClientSession
{
private SessionInfo sessionInfo;
public static WebSocketSessionManager sessionQueue { get; set; }
// more stuff here
}
sessionQueue被分配了所有会话。
所以,现在我有了所有的会议。套接字服务器接收请求,通过pub / sub机制(提供订阅用户列表),现在我尝试使用以下内容发送数据:
DDPServer.sessionQueue.SendTo("test", "3d0f491cfb654dd4839337608b19f849");
其中3d0f491cfb654dd4839337608b19f849是会话ID。
答案 0 :(得分:0)
WebSocketSessionManager维护打开的连接,因此使用.SendTo(“此处为字符串数据”,“此处为字符串会话ID”),我能够发送给任何其他客户端。
因此,我将订阅用户,将通道存储在数据库中的订阅用户列表中,拉出这些用户,查找与这些用户关联的会话(如果有),然后运行for循环到SendTo每次会议。