发送给特定用户的Websocket消息

发送给特定用户的Websocket消息,websocket,Websocket,我是.NET(C#)和WebSocket的新手。。。我已经安装了VS2012和Windows Server 2012,并且已经启动并运行了WebSocket。我似乎无法从一个套接字接收消息并将其发送到另一个特定的套接字。唯一的选择似乎是向所有套接字广播消息。有没有一种方法可以将消息只发送给特定的用户?我希望聊天室主持人有机会拒绝不适当的帖子。推荐的方法是设置某种路由方案,以确保消息可以传递给特定用户。例如,使用通道进行消息路由。为了防止对服务器的多个连接,可以考虑将服务器端的多路复用到单个套接字

我是.NET(C#)和WebSocket的新手。。。我已经安装了VS2012和Windows Server 2012,并且已经启动并运行了WebSocket。我似乎无法从一个套接字接收消息并将其发送到另一个特定的套接字。唯一的选择似乎是向所有套接字广播消息。有没有一种方法可以将消息只发送给特定的用户?我希望聊天室主持人有机会拒绝不适当的帖子。

推荐的方法是设置某种路由方案,以确保消息可以传递给特定用户。例如,使用通道进行消息路由。为了防止对服务器的多个连接,可以考虑将服务器端的多路复用到单个套接字中。
要实现适度,你需要记住一些额外的挑战;考虑将传入的消息放入审核队列中进行审批。类似或的消息队列适用于此。主持人将从队列中提取消息,并批准消息进行最终广播,或拒绝(将消息扔到地板上)。

假设您的服务器端脚本中的一个数组中有所有客户端(即套接字对象),为什么不在数组中循环并使用if语句或类似逻辑来限制向哪些客户机发送信息?一旦我找到了特定的客户机,我正在寻找只向该客户机发送消息的方法是什么?我在MS Server 2012中看到的唯一方法是“Broadcast()”,它将发送到整个集合。还有其他方法吗?我使用PHP作为我的服务器端语言,因此我无法为您提供确切的代码,但我认为MS server 2012有一个特定的函数,可以通过指定的套接字发送数据。我想查看MS Server 2012套接字参考以了解详细信息,并找到允许您沿指定套接字发送数据的函数。哈特利,谢谢你的帮助。如果有一个函数只向一个套接字发送消息,我还没有找到它。我解决问题的方法是创建多个集合(在某些情况下只有一个成员),然后向集合中的“所有”成员广播。很难看,但很管用。再次感谢这一点:使用PubSub层并考虑认证。在这种情况下,我也会考虑看。