SignalR2实时聊天
SignalR2实时聊天
NuGet包中搜索SignalR添加引用
using Microsoft.AspNet.SignalR;
创建OWIN启动类
namespace SignalRChat
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
创建SignalR Hub类
namespace SignalRChat
{
public class ChatHub : Hub
{
//创建发送消息的方法
public void Send(string message)
{
//将消息发送给所有已连接客户端
Clients.All.broadcastMessage(message);
//只给当前调用的客户端发送消息
Clients.Caller.broadcastMessage(message);
//给当前调用的客户端以外的客户端发送消息
Clients.Others.broadcastMessage(message);
//将消息发送给目标客户端
Clients.Client(Context.ConnectionId).broadcastMessageGo(message);
Clients.AllExcept(ConnectionId1,ConnectionId2,...).broadcastMessageGo(message);
//将消息发送给目标群组的客户端
Clients.Group(GroupName).groupMessageGo(message);
//排除指定客户
Clients.Group(GroupName,ConnectionId1,ConnectionId2,...).groupMessageGo(message);
//排除调用操作的客户端
Clients.OthersInGroup(GroupName).groupMessageGo(message);
//用户标识的指定用户
Clients.User(userid).broadcastMessage(message);
}
//群组没有直接的创建和删除,群组和客户端的关联需要自行保存。
public void Group(string GroupName)
{
//加入组
Groups.Add(Context.ConnectionId, GroupName);
//退出组
Groups.Remove(Context.ConnectionId, GroupName);
}
public override Task OnConnected()
{
//创建连接时执行
return base.OnConnected();
}
public override Task OnDisconnected(bool stopCalled)
{
//客户端断开时执行
return base.OnDisconnected(stopCalled);
}
public override Task OnReconnected()
{
//重连时执行
return base.OnReconnected();
}
}
}
创建前端html页面
- 页面上需要引用signalR.js和signalr/hubs
- 创建客户端方法以供后端调用
- 后端调用前端方法时输入对应的参数到前端接收
- chat.client.方法名字 = function(参数){}
<script src="Scripts/jquery.signalR-2.2.2.min.js"></script>
<script src="signalr/hubs"></script>
// 声明一个代理以引用集线器
var chat = $.connection.chatHub;
// 创建接收消息的方法
chat.client.broadcastMessage = function (message) {
$("#ShowMessage ul").append(message)
};
$.connection.hub.start().done(function () {
//启动连接时执行
});
SignalR2实时聊天的更多相关文章
- MVC5中使用SignalR2.0实现实时聊天室
原文 MVC5中使用SignalR2.0实现实时聊天室 有时候需要浏览器和服务端保持实时的通讯(比如在线聊天),SignalR的出现让这一切变得非常简单.它能够让服务端向客户端实时的推送消息.如果用户 ...
- 使用SignalR+Asp.net创建实时聊天应用程序
一.概述: 使用 ASP.NET 那么 SignalR 2 创建一个实时聊天应用程序.将 SignalR 添加 MVC 5 应用程序中,并创建聊天视图发送并显示消息. 在Demo中,将学习Signal ...
- SignalR入门一、通过 SignalR 2 进行实时聊天
一:什么是signalR Asp.net SignalR是微软为实现实时通信的一个类库.一般情况下,signalR会使用JavaScript的长轮询(long polling)的方式来实现客户端和服务 ...
- SignalR实现网页实时聊天功能
SignalR是利用html5 sokit方式实现网页的实时性,在客户端不支持html5的情况下通过轮询实现 实现原理是客户端发送的消息先去服务器,然后服务器根据需要将消息广播到需要接收信息的客户群. ...
- 网页实时聊天之PHP实现websocket
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- 网页实时聊天之js和jQuery实现ajax长轮询
众所周知,HTTP协议是无状态的,所以一次的请求都是一个单独的事件,和前后都没有联系.所以我们在解决网页实时聊天时就遇到一个问题,如何保证与服务器的长时间联系,从而源源不段地获取信息. 一直以来的方式 ...
- 基于swoole的网页一对一实时聊天
需求分析 网站上实现一对一即时沟通,能查看聊天记录以及离线留言,新消息提醒. 核心技术 html5的websocket,php的swoole扩展http://wiki.swoole.com/ 数据表 ...
- 我的学习笔记之node----node.js+socket.io实时聊天(1) (谨此纪念博客开篇)
本想着从hello word开篇,也确实写了相关学习笔记.各种原因吧,现在又着急写出作品,便作罢. 这里将记录一个node.js+socket.io的实时聊天程序.(当然我也是跟着网上各种教程资料学习 ...
- Node+Express+MongoDB + Socket.io搭建实时聊天应用
Node+Express+MongoDB + Socket.io搭建实时聊天应用 前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战 ...
随机推荐
- Linux04 目录的相关操作(mkdir、rmdir、rm、cp)
一.创建目录:mkdir mkdir 目录名 二.删除目录:rmdir / rm rmdir 目录名 rm -r 目录名 每一级子目录都会询问是否删除 rm -rf 目录名 慎用,给 ...
- Ubuntu 中linux 编译错误的(-)
1.错误 compress.c:14:58: fatal error: zlib.h: No such file or directorycompilation terminated. 解决:sudo ...
- logrus 剖析之滚动日志
在实际开发过程中,为了节省磁盘,日志需要按照时间或者大小维度进行切割分成多分,归档过期的日志,删除久远的日志.这个就是在日常开发中经常遇见的日志滚动(log rotation) 那么在 logrus ...
- java之struts2之ajax
1.Ajax 技术在现有开发中使用非常多,大多是做管理类型系统.在servlet中可以使用ajax.在struts2中共还可以使用servlet的方式来实现ajax. 2.案例:用户名检查 publi ...
- kubernetes第五章--创建资源的两种方式
- 谷歌浏览器解决ajax跨域问题
在用mui和H5+做混合开发,会利用HBuildx去真机调试,可真机调试总有问题所在,懂得人自然懂,而我们直接打开页面显示的只有一个静态的页面,是获取不到数据的在这里我想说的不是代码中利用jsonp, ...
- Springboot项目统一异常处理
Springboot项目统一异常处理 一.接口返回值封装 1. 定义Result对象,作为通用返回结果封装 2. 定义CodeMsg对象,作为通用状态码和消息封装 二.定义全局异常类 三.定义异常处理 ...
- 前端js入门之 JavaScript 对象直接量
JavaScript中,创建对象可以使用构造函数方式. 代码实例如下: obj.webName = "博客园"; obj.address = "编程语言"; 以 ...
- FastDFS+Nginx搭建Java分布式文件系统
一.FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS ...
- 尚硅谷MySQL基础学习笔记
目录 写在前面 MySQL引入 数据库的好处 数据库的相关概念 数据库存储数据的特点 MySQL服务的启动和停止 MySQL服务端的登录和退出 MySQL的常用命令 MySQL语法规范 DQL(Dat ...