SignarL服务器端发送消息给客户端的几种情况

原文: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);

原文地址:https://www.cnblogs.com/lonelyxmas/p/10317650.html

时间: 2024-08-29 09:21:10

SignarL服务器端发送消息给客户端的几种情况的相关文章

微信主动发送消息到客户端

微信开发者通过接口给粉丝发送消息: URL链接: https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN 参数: { 'touser' : openid. 'msgtype' : text 'text' : { 'content' => message } } 通过这个可以封装好消息去通知用户.

C语言 Socket入门示例1—— 单工通信(客户端向服务器发送消息)

如果对Windows API不太熟悉.对TCP/IP通信协议不太熟悉,或者对C语言本身不太熟悉的话,学习Socket会有点难受的.以前学习操作系统的时候,被API吓怕了,很多莫名其妙的API有着多如牛毛的参数,令人费解.学习计算机网络的时候,又有那么多的协议,并且很多协议本身比较复杂,什么三次握手建立连接,什么四次握手释放链接等等,也没有学得特别透彻.更遗憾的是,以前学C的时候,误以为自己把C学会了,误以为C就那么几个头文件而已,就一个黑框子而已. 现在,经过一段时间的痛苦磨练,又有了一些新的认

使用Pushlet将消息从服务器端推送到客户端

使用Pushlet来实现服务器端向客户端推送信息 1.   实现方式: 有两种实现方式: 1.         通过配置文件来实现定时的从服务器端向客户端推送信息 2.         通过API主动向另外一端推送信息 以下分别给予介绍. 2.   特别注意 在开始测试之前,有三点非常重要,需要实现讲明,否则程序将会无法正常运行: 2.1.     JSP页面上的设定 JSP页面上必须添加以下代码以确保Pushlet能够正确的获得后台服务的地址: <base href="<%=req

用socaket编写客户端与服务端程序相互发送消息

//运行环境:eclipse || MyEclipse package socaket; //这些类全放在socaket的包下 //这是服务器端消息发送类 import java.io.IOException;import java.io.PrintWriter;import java.net.Socket;import java.util.Scanner; public class ServerChatSend extends Thread {//服务端发送线程 Socket ssk = nu

使用DWR长连接技术实现客户端一对一发送消息

关于DWR怎么使用我的上一篇博文里面记录了,这里写一个DWR一对一消息推送的WEB程序,也就是WEB一对一聊天.我的思路是这样的:首先每个用户在登陆后在各自的页面放置一个唯一标记(如用户的ID,也可以放在session里面),用户A向用户B发送的消息 -->服务器 -->JAVA方法-->JAVA方法调用前端所有正在访问聊天页面的JS函数-->JS判断消息发送至的客户端是否是用户B -->是则显示,否则不显示:用户B向A同样过程 首先是该项目的web.xml文件: <?

TCP编程例三:从客户端发送文件给服务器端,服务器端保存到本地,并返回“发送成功”给客户端。

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetAddress; import java.

java客户端向单机版kafka发送消息没有接收到

kafka版本:kafka_2.11-0.10.0.0 在kafka服务器命令发送消息,消费者可以接受到, 但是在java客户端向kafka发送消息时消费者接受不到, 在kafka/config/sever.properties把这个注解打开 advertised.listeners=PLAINTEXT://ip.137:9092        #本机服务器ip 意思就是说:hostname.port都会广播给producer.consumer.如果你没有配置了这个属性的话,则使用listene

PHP实现RTX发送消息提醒

RTX是腾讯公司推出的企业级即时通信平台,大多数公司都在使用它,但是我们很多时候需要将自己系统或者产品的一些通知实时推送给RTX,这就需要用到RTX的服务端SDK,建议先去看看RTX的SDK开发文档(客户端,服务器),我们先看看功能效果:                   当然,现在很多公司都已经在RTX的基础上升级成了企业微信,没关系,这个API同样可以使用,还是同样的接口,只是展示效果不一样而已: 下面是用PHP实现RTX发送消息提醒: 1.首先在服务器端安装RTX的服务端和客户端,再安装

kafka无法发送消息问题处理

背景 在服务器上搭建了一个单机环境的kafka broker,在服务器上使用命令生产消息时,一切正常.当在本地使用JAVA程序发送消息时,一直出错. 抛出的错误为: Exception in thread "main" Failed to send requests for topics test with correlation ids in [0,12] kafka.common.FailedToSendMessageException: Failed to send messag