博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.Net Mvc5 结合 SignalR2.0+ 实现消息交互简单例子
阅读量:5307 次
发布时间:2019-06-14

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

 Nuget添加 SignalR包

1、构建一个MyHubServer服务端类

定义类的特性标签为

[HubName("chatHub")]    public class MyHubServer : Hub    {    }

必须继承Hub基类,基类中提供了如下操作

public abstract class HubBase : IHub, IUntrackedDisposable, IDisposable    {        protected HubBase();        public HubCallerContext Context { get; set; }        public IGroupManager Groups { get; set; }        public void Dispose();        public virtual Task OnConnected();        public virtual Task OnDisconnected(bool stopCalled);        public virtual Task OnReconnected();        protected virtual void Dispose(bool disposing);    }
Context :上下问对象 Groups : 分组 以及下面的三个虚方法,必要是可以重写 OnConnected 建立连接、OnDisconnected 断开连接、OnReconnected 从新连接构建客Js户端 ,安装了Nuget包后会看到如下js文件,将应用页面添加js引用,基于Jquery的

引用客户端JS包

 

Notes:第二个Js是Signalr生成的js文件路径,项目目录中不会存在

需要注意的是这个

这里连接的chartHub就是服务端的 HubName属性标签配置的名称

以如下客户排单为例子:

当没有客户对接人员上线发送会提示

我们打开2个浏览器分别登上不同的账号

当客户对接人员使用功能时候提示

使用另一个账号发送消息,客户对接人员会实时接受消息,同时将这些消息保留数据库记录

 

 接下来看下服务端的具体代码

public void sendmsg(string contact, string sendid, string sendname)        {
   Clients.Client(Context.ConnectionId).addTips("客户接待人员还没有上线"); }

服务端发送方法,这里与客户端Js调用服务端方法是对应的

 

 服务端  中的 Clients对象包含了3个类别

All:向所有的客户端发送消息

Group:向分组包含的客户端发送消息

Client:向某一个指定客户端发送消息

 基本就是对这些进行操作,包括群聊的处理都是通过以上三个方式来实现在线聊天功能

 

转载于:https://www.cnblogs.com/liyouming/p/9176844.html

你可能感兴趣的文章
docker一键安装
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
7.5 文件操作
查看>>
DFS-hdu-2821-Pusher
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
windows基本命令
查看>>
VMware中CentOS设置静态IP
查看>>
[poj1006]Biorhythms
查看>>
jsp
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>
Mac---------三指拖移
查看>>
关于VMare中安装Ubuntu的一些说明
查看>>
字符串类型的相互转换
查看>>
day57 手写socket、路由系统、响应一个动态内容、链接数据库、django配置、及应用、DNS服务器...
查看>>
YARN的运行机制
查看>>
HTTP状态码
查看>>