zoukankan      html  css  js  c++  java
  • SignarL服务器端发送消息给客户端的几种情况

      一、所有连接的客户端

      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);

  • 相关阅读:
    Linux的文本编辑和文本内容查看命令
    服务器日志查看处理(一)
    MAC 系统java开发环境搭建教程
    git撤销已经push到远端的commit
    Centos7 编译安装 Libmcrypt 库
    curl和wget的区别和使用
    docker 安装vim和yum命令
    docker安装GD扩展
    【docker】为docker下的php容器安装php-redis扩展【编译安装】
    mysql大表优化方案
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/9804218.html
Copyright © 2011-2022 走看看