你的位置:首页 > 软件开发 > ASP.net > [Asp.net 开发系列之SignalR篇]专题二:使用SignalR实现酷炫端对端聊天功能

[Asp.net 开发系列之SignalR篇]专题二:使用SignalR实现酷炫端对端聊天功能

发布时间:2016-04-04 22:00:12
一、引言  在前一篇文章已经详细介绍了SignalR了,并且简单介绍它在Asp.net MVC 和WPF中的应用。在上篇博文介绍的都是群发消息的实现,然而,对于SignalR是为了实时聊天而生的,自然少了不像QQ一样的端对端的聊天了。本篇博文将介绍如何使用SignalR来实现类似 ...

[Asp.net 开发系列之SignalR篇]专题二:使用SignalR实现酷炫端对端聊天功能

一、引言

  在前一篇文章已经详细介绍了SignalR了,并且简单介绍它在Asp.net MVC 和WPF中的应用。在上篇博文介绍的都是群发消息的实现,然而,对于SignalR是为了实时聊天而生的,自然少了不像QQ一样的端对端的聊天了。本篇博文将介绍如何使用SignalR来实现类似QQ聊天的功能。

二、使用SignalR实现端对端聊天的思路

   在介绍具体实现之前,我先来介绍了使用SignalR实现端对端聊天的思路。相信大家在前篇文章已经看到过Clients.All.sendMessage(name, message);这样的代码,其表示调用所有客户端的SendMessage。SignalR的集线器使得客户端和服务端可以进行实时通信。那要实现端对端的聊天,自然就不能像所有客户端发送消息了,而只能向特定的客户端发送消息才可以,不然不就乱套了,没有任何隐私权了。那怎样才可以向特定的客户端发送消息呢?这个问题也就是我们实现端对端聊天功能的关键。

  我们发送Clients对象除了All属性外,还具有其他属性,你可以在VS中按F12来查看Clients对象的所有属性或方法,具体的定义如下:

 public interface IHubConnectionContext<T>  {    T All { get; } // 代表所有客户端    T AllExcept(params string[] excludeConnectionIds); // 除了参数中的所有客户端    T Client(string connectionId); // 特定的客户端,这个方法也就是我们实现端对端聊天的关键    T Clients(IList<string> connectionIds); // 参数中的客户端端    T Group(string groupName, params string[] excludeConnectionIds); // 指定客户端组,这个也是实现群聊的关键所在    T Groups(IList<string> groupNames, params string[] excludeConnectionIds);    T User(string userId); // 特定的用户    T Users(IList<string> userIds); // 参数中的用户  }

原标题:[Asp.net 开发系列之SignalR篇]专题二:使用SignalR实现酷炫端对端聊天功能

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。