博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SignarL服务器端发送消息给客户端的几种情况
阅读量:6256 次
发布时间:2019-06-22

本文共 2195 字,大约阅读时间需要 7 分钟。

  一、所有连接的客户端

  Clients.All.addContosoChatMessageToPage(name, message);

  二、只发送给呼叫的客户端(即触发者)

  Clients.Caller.addContosoChatMessageToPage(name, message);

  三、除了触发者之外的所有客户端

  Clients.Others.addContosoChatMessageToPage(name, message);

  四、由连接ID标识的特定客户端

  Clients.Client(Context.ConnectionId).addContosoChatMessageToPage(name, message);

  public void SendToSingle(string toConnectionID, string fromName, string toName, string message)

  {
    Clients.Client(toConnectionID).SendToSingleClient("<li class='green_li'>[" + fromName + "]对你说:" + message + " - " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</li>");
    Clients.Client(Context.ConnectionId).SendFromSingleClient("<li class='green_li'>你对[" + toName + "]说:" + message + " - " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</li>");
  }

  五、除了指定客户端之外的所有连接的客户端,由连接ID标识

  Clients.AllExcept(connectionId1, connectionId2).addContosoChatMessageToPage(name, message);

  public void SystemNotice(string connectionID, string username, string type)

 {
    if (type.Equals("1"))
    {
        Clients.AllExcept(connectionID).SystemNoticeClient("<li class='red_li'>系统消息:"
            + username + " 加入聊天室 - " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</li>");
    }
    else
    {
        Clients.AllExcept(connectionID).SystemNoticeClient("<li class='red_li'>系统消息:"
            + username + " 退出了聊天室 - " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</li>");
    }
  }

  六、在指定的组中的所有连接的客户端

  Clients.Group(groupName).addContosoChatMessageToPage(name, message);

  七、指定组中除指定客户端外的所有已连接客户端,由连接ID标识

  Clients.Group(groupName, connectionId1, connectionId2).addContosoChatMessageToPage(name, message);

  八、指定组中除呼叫客户端外的所有已连接客户端

  Clients.OthersInGroup(groupName).addContosoChatMessageToPage(name, message);

  九、由userId标识的特定用户

  Clients.User(userid).addContosoChatMessageToPage(name, message);

  (默认情况下,这是IPrincipal.Identity.Name可以通过向全局主机注册IUserIdProvider的实现来更改的。)

  十、连接ID列表中的所有客户端和组

  Clients.Clients(ConnectionIds).broadcastMessage(name, message);

  十一、组ID列表中的所有组

  Clients.Groups(GroupIds).broadcastMessage(name, message);

  十二、用户名标识的客户端

  Clients.Client(username).broadcastMessage(name, message);

  十三、用户名列表对应的所有客户端(在SignalR 2.1中引入)

  Clients.Users(new string[] { "myUser", "myUser2" }).broadcastMessage(name, message);

转载地址:http://yynsa.baihongyu.com/

你可能感兴趣的文章
Android碎碎念 -- 视频播放器
查看>>
关于51单片机“外部中断触发方式”的经验总结
查看>>
2.文件管理
查看>>
Oracle中TO_DATE TO_CHAR格式
查看>>
oracle的触发器增删改实例
查看>>
hive 自定义函数 udf
查看>>
哈哈校园[上海]招募Java/J2EE工程师
查看>>
Docker在CentOS 7 环境下的安装及基本操作入门
查看>>
【Spring Boot 系列 自定义启动器Starter】
查看>>
Centos 7.4版本升级内核3.10+ 到4+过程
查看>>
ssh 免密码登录的设置遇到问题
查看>>
amoeba稳定性问题
查看>>
Linux进阶命令之file
查看>>
创建 floating IP - 每天5分钟玩转 OpenStack(106)
查看>>
创建个人博客 之 部署WordPress
查看>>
使用FTP批处理备份文件
查看>>
viewpager
查看>>
docker快速批量删除容器或镜像
查看>>
CSS3 box-sizing 让边框不占独立空间
查看>>
博科交换机的基本配置和级联配置
查看>>