SignalR简单Demo
我们实现一个简单的消息通知的Demo
在NuGet中添加SignalR引用
install-package Microsoft.AspNet.SignalR
然后我们创建一个类来引用Hub类
namespace SignalRDemo.Hubs
{
public class ServerHub:Hub
{
}
}
或者直接在添加项中添加SignalR添加SignalR
然后我们在ServerHub类中创建一个发送信息方法
/// <summary>
/// 服务器发送方法
/// </summary>
/// <param name="msg"></param>
public void SendMsg(string msg)
{
//调用客户端的showMsg方法
Clients.All.showMsg(Context.ConnectionId, msg);
}
这个方法由客户端进行调用,方法中Clients代表客户端对象,这段话表示调用客户端的showMsg方法.而All代表是给所有人发送通知
All:调用所有人方法
Others:调用除去自己所有人方法
Caller:调用自己方法
Group:调用组内所有人方法
Client(string connectionId):调用指定连接编号的方法
Context.ConnectionId是当前连接用户的标志,是一个GuId
然后我们创建一个Start类来注册SignalR
namespace SignalRDemo
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
注意,此处是一个约定,类名与方法名必须为Startup和Configuration。该类还必须在网站根目录,否则运行时就会出错
接下来我们就可以创建页面了
创建一个Home控制器Index页面。
在页面中引用JQuery类库与SignalR类库
然后我们再手动添加一个类库引用
<script src="~/SignalR/Hubs"></script>
这个js类库在目录下是找不到的,它是在运行时自动创建
我们可以启动项目来查看下这个路径
如果出现此页面则表示我们SignalR配置OK。
下面我们就可以写客户端了
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<input type="text" id="msg"/>
<button id="sendMsg">发送消息</button>
</div>
<ol id="showMsg"> </ol>
<script src="~/Scripts/jquery-1.6.4.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.2.js"></script>
<script src="~/SignalR/Hubs"></script>
<script>
$(function () {
//获取服务端连接对象
var hub = $.connection.serverHub;
//创建服务端所调用的客户端方法
hub.client.showMsg=function(name, msg){
$('#showMsg').append('<li><span style="color:red">'+name+':</span>'+msg+'</li>')
}
//开始连接服务器
$.connection.hub.start().done(function () {
//连接成功
$('#sendMsg').bind('click', function () {
//调用服务端发送方法
hub.server.sendMsg($('#msg').val());
})
}).fail(function () {
//连接失败
alert("连接失败");
});
})
</script>
</body>
</html>
然后就可以简单进行消息通知了
SignalR简单Demo的更多相关文章
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序
SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 异常汇总:http://www ...
- 设计模式之单例模式的简单demo
/* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...
- Spring的简单demo
---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...
- 使用Spring缓存的简单Demo
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...
- Managed DirectX中的DirectShow应用(简单Demo及源码)
阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...
- angular实现了一个简单demo,angular-weibo-favorites
前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...
- Solr配置与简单Demo[转]
Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...
- 二维码简单Demo
二维码简单Demo 一.视图 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name=&qu ...
- android JNI 简单demo(2)它JNI demo 写
android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...
随机推荐
- Failed to call ScheduleShutdown in logind, proceeding with immediate shutdown: Access denied
装了fedora23后定时关机:sudo shutdown -h +60 弹出如下信息后立刻就关机了: Failed to call ScheduleShutdown in logind, proce ...
- Android 个推 踩坑小结
公司一个项目之前在手机上一直可以正常运行,后来在平板上运行了一下,在欢迎页面卡出了,一直没有反应. 于是我就将项目在电脑上用Android Studio往平板上运行了一遍,看了下打印的Log日志,发现 ...
- 分水岭 golang入坑系列
第三式开篇语有些负面, 所以这里就不贴了.有兴趣的自己可以去看看 https://andy-zhangtao.gitbooks.io/golang/content/ .怒发冲冠,意气之作.看完就完了, ...
- php中session 入库的实现
ini_set("session.save_handler","user");//session.gc_probability = 1 分子ini_set(&q ...
- DIN(Deep Interest Network of CTR) [Paper笔记]
背景 经典MLP不能充分利用结构化数据,本文提出的DIN可以(1)使用兴趣分布代表用户多样化的兴趣(不同用户对不同商品有兴趣)(2)与attention机制一样,根据ad局部激活用户兴趣相关的兴趣(用 ...
- 如何简单愉快的上手PipelineDB
pipelineDB source:https://github.com/pipelinedb/pipelinedb 安装PipelineDB ./configure CFLAGS="-g ...
- centOS 搭建pipelineDB docs
#下载docs git clone https://github.com/pipelinedb/docs.git #安装python-sphinx &python-dev yum instal ...
- VS2015 密钥key
亲测可用: HMGNV-WCYXV-X7G9W-YCX63-B98R2
- springCloud Hystrix 断路由
第一步加入依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId& ...
- nuget服务器搭建,以及如何发布一个Nuget包
本文章主要介绍如何将本地dll打包成为一个Nuget包,并如何发布到自己的nuget服务器.章节如下 1. 本地dll如何打包,以及版本的更新 2. 在linux上搭建nuget.server 3. ...