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实时聊天的更多相关文章

  1. MVC5中使用SignalR2.0实现实时聊天室

    原文 MVC5中使用SignalR2.0实现实时聊天室 有时候需要浏览器和服务端保持实时的通讯(比如在线聊天),SignalR的出现让这一切变得非常简单.它能够让服务端向客户端实时的推送消息.如果用户 ...

  2. 使用SignalR+Asp.net创建实时聊天应用程序

    一.概述: 使用 ASP.NET 那么 SignalR 2 创建一个实时聊天应用程序.将 SignalR 添加 MVC 5 应用程序中,并创建聊天视图发送并显示消息. 在Demo中,将学习Signal ...

  3. SignalR入门一、通过 SignalR 2 进行实时聊天

    一:什么是signalR Asp.net SignalR是微软为实现实时通信的一个类库.一般情况下,signalR会使用JavaScript的长轮询(long polling)的方式来实现客户端和服务 ...

  4. SignalR实现网页实时聊天功能

    SignalR是利用html5 sokit方式实现网页的实时性,在客户端不支持html5的情况下通过轮询实现 实现原理是客户端发送的消息先去服务器,然后服务器根据需要将消息广播到需要接收信息的客户群. ...

  5. 网页实时聊天之PHP实现websocket

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  6. 网页实时聊天之js和jQuery实现ajax长轮询

    众所周知,HTTP协议是无状态的,所以一次的请求都是一个单独的事件,和前后都没有联系.所以我们在解决网页实时聊天时就遇到一个问题,如何保证与服务器的长时间联系,从而源源不段地获取信息. 一直以来的方式 ...

  7. 基于swoole的网页一对一实时聊天

    需求分析 网站上实现一对一即时沟通,能查看聊天记录以及离线留言,新消息提醒. 核心技术 html5的websocket,php的swoole扩展http://wiki.swoole.com/ 数据表 ...

  8. 我的学习笔记之node----node.js+socket.io实时聊天(1) (谨此纪念博客开篇)

    本想着从hello word开篇,也确实写了相关学习笔记.各种原因吧,现在又着急写出作品,便作罢. 这里将记录一个node.js+socket.io的实时聊天程序.(当然我也是跟着网上各种教程资料学习 ...

  9. Node+Express+MongoDB + Socket.io搭建实时聊天应用

    Node+Express+MongoDB + Socket.io搭建实时聊天应用 前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战 ...

随机推荐

  1. 19.Python略有小成(面向对象Ⅰ)

    Python(面向对象Ⅰ) 一.面向对象初识 回顾面向过程编程与函数式编程 # 面向过程编程 测量对象的元素个个数. s1 = 'fjdsklafsjda' count = 0 for i in s1 ...

  2. 保研经验帖----江西师范大学 to 华中科技大学

    呼,距离拿到华科cs的offer也有一段时间,有好几次准备动手写这篇经验帖,但就是理不清自己想表达什么,今早起来状态还不错,洗漱的时候思路居然通透了,哈哈哈~ 一.基本情况 先简单介绍笔者的一些基本情 ...

  3. .NET母版页实例(UI页面)

    全文注释: 1.<!DOCTYPE>声明位于文档中的最前的位置,处于<html>标签之前. 2.此标签可告知浏览器文档使用哪种HTML或XHTML规范 3.<!DOCTY ...

  4. java之hibernate之单向的一对多关联映射

    这篇主要讲hiberante中的 单向一对多关联映射 1.在应用中,有时候需要从一的一端获取多的一端的数据.比如:查看某个分类下的所有书籍信息:查看某个订单下的所有商品等. 2.在一对多的关联关系中, ...

  5. ASP.NET Core & 双因素验证2FA 实战经验分享

    必读 本文源码核心逻辑使用AspNetCore.Totp,为什么不使用AspNetCore.Totp而是使用源码封装后面将会说明. 为了防止不提供原网址的转载,特在这里加上原文链接: https:// ...

  6. catch SocketException

    https://stackoverflow.com/questions/32810051/cannot-catch-socketexception/32810079#32810079 https:// ...

  7. Javap与JVM指令

    一.javap命令简述 javap是jdk自带的反解析工具.它的作用就是根据class字节码文件,反解析出当前类对应的code区(汇编指令).本地变量表.异常表和代码行偏移量映射表.常量池等等信息.当 ...

  8. 【转载】C#中List集合使用Reverse方法对集合中的元素进行倒序反转

    在C#的List集合操作中,有时候需要对List集合中的元素的顺序进行倒序反转操作,此时就可使用到List集合中的Reverse方法来实现此功能,Reverse方法的签名为void Reverse() ...

  9. 1+X证书学习日志——css 3D效果+立方体效果的实现

    形成一个3D的空间 transform-style: preserve-3d; ### 3D在2D的基础上,多了这些内容 位移 transform:translateZ(); 旋转 transform ...

  10. HBuilderX打包成安卓或苹果app之后的调试问题,避免每次都要打包

    一.使用VScode安装 Live Server插件 二.使用:安装成功后---->>新建一个index.html 写入内容如下图所示 注:href地址是你在电脑上启动该项目的访问地址(此 ...