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

  • 相关阅读:
    清除浮动解决父元素高度塌陷问题
    canvas画动图
    vue实现列表的循环滚动
    localStorage读写操作
    angularJS快速入门
    python模块
    python函数式编程
    python高级特性
    Flask 快速入门
    JQuery Ajax
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/9804218.html
Copyright © 2011-2022 走看看