加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 是否有可能过滤SignalR中的接收器?

发布时间:2021-03-31 03:15:04 所属栏目:asp.Net 来源:互联网
导读:我遇到了以下问题.我想做以下事情. 当连接新客户端时,组参数将被发送到SignalR服务器端(以URL或其他方式). 然后我想只通知特定组的客户. 例如 I have 3 clients:1) with group parameter = a2) with group parameter = a3) with group parameter = b 我想只通

我遇到了以下问题.我想做以下事情.
当连接新客户端时,组参数将被发送到SignalR服务器端(以URL或其他方式).
然后我想只通知特定组的客户.

例如

I have 3 clients:
1) with group parameter = a
2) with group parameter = a
3) with group parameter = b

我想只通知组参数== a的客户端.
如果我使用动态字段客户端,它将为所有客户端发送消息.
有可能以某种方式过滤接收器吗?

解决方法

如果要向所有组成员发送消息,则需要在组中添加客户端.您可以定义组名称,也可以让客户选择.例如:
<script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.signalR.js" type="text/javascript"></script>
<script src="signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        var g = $.connection.groups;

        g.send = function (t) {
            $("#groups").append(t);
        };
        $("#btnJoin").click(function () {
            g.addGroup($("#gr").val());
        });
        $("#btnSend").click(function () {
            g.sendMessage("a"); //for example a group.
        });
        $.connection.hub.start();
    });
</script>
<select id="gr">
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
</select>
<div id="groups"></div>
<input id="btnJoin" type="button" value="Join"/>
<input id="btnSend" type="button" value="Send"/>
public class Groups : Hub
{
     public void AddGroup(string groupName)
     {
         GroupManager.AddToGroup(Context.ClientId,groupName);
         Clients.send(Context.ClientId + " join " + groupName + " group.<br />");
     }

    public void SendMessage(string groupName)
    {
        Clients[groupName].send(groupName + " group - Hello Everybody!");            
    }
}

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读