.net websocket 如何发送消息给特定的客户端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net websocket 如何发送消息给特定的客户端相关的知识,希望对你有一定的参考价值。

每个用户的id都是唯一的,现在后台能握手成功,也能获取到接收方的id,如何把消息推送给接收方呢?求有一定功能,思路清晰的参考代码..

参考技术A 用SignalR。本回答被提问者采纳

给特定用户的 Websocket 消息

【中文标题】给特定用户的 Websocket 消息【英文标题】:Websocket message to specific user 【发布时间】:2013-01-29 21:20:20 【问题描述】:

我是 .NET (C#) 和 websockets 的新手...我已经安装了 VS2012 和 Windows Server 2012,并且已经启动并运行了 websockets。我似乎不能做的是从一个套接字接收消息并将其发送到另一个特定的套接字。唯一的选择似乎是将消息广播到所有套接字。有没有办法将消息仅针对特定用户?我希望聊天室版主有机会拒绝不适当的帖子。

【问题讨论】:

假设您在服务器端脚本的数组中拥有所有客户端(即套接字对象),为什么不直接遍历数组并使用 if 语句或类似逻辑来限制您发送的客户端信息到? 一旦我找到特定的客户端,我正在寻找仅向该客户端发送消息的方法是什么?我在 MS Server 2012 中看到的唯一方法是“Broadcast()”,它发送到整个集合。还有其他方法吗? 我使用 PHP 作为我的服务器端语言,所以我无法为您提供确切的代码,但我想 MS Server 2012 具有通过指定套接字发送数据的特定功能。我会查看 MS Server 2012 套接字参考以获取详细信息,并找到允许您沿指定套接字发送数据的函数。这应该可以让你到达那里。 哈特利,感谢您的帮助。如果有将消息发送到仅一个套接字的功能,我还没有找到它。我解决问题的方法是创建多个集合(在某些情况下只有一个成员),然后向集合中的“所有”成员广播。丑陋,但它的工作原理。再次感谢 与此相关:***.com/a/15474698/39904 使用 PubSub 层并考虑身份验证。在这种情况下,我也会考虑查看signalr.net 【参考方案1】:

推荐的方法是设置某种路由方案,以确保可以将消息传递给特定用户。例如。 Pubnub 使用通道进行消息路由。为了防止与服务器的多个连接,您可以考虑将服务器端的通道多路复用到单个套接字中。

要实施审核,您需要记住一些额外的挑战;考虑将传入消息放入审核队列以供批准。像ZeroMQ 或RabbitMQ 这样的消息队列可以解决这个问题。主持人将从队列中拉出消息,然后批准消息进行最终广播,或者拒绝(将消息丢弃在地板上)。

【讨论】:

以上是关于.net websocket 如何发送消息给特定的客户端的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring Websocket 上向特定用户发送消息

如何在特定时间通过 websocket 发送消息

如何使用 websockets 通过 Flask 向特定用户发送消息?

如何使用java服务器将消息发送到特定的websocket连接

Laravel Websocket 向特定的 Android 设备发送消息

如何通过spring websocket STOMP向特定订阅发送消息?