SignalR的简单实现(一)
ASP.NET SignalR是ASP.NET开发人员的一个新库,它使您的应用程序添加实时Web功能变得非常简单。什么是“实时网络”功能?能够实时地将服务器端代码推送到连接的客户端的能力。
您可能已经听说过WebSockets,一种新的HTML5 API,可以实现浏览器和服务器之间的双向通信。SignalR将在可用的封面下使用WebSockets,如果不是,您的应用程序代码保持不变,则可以正常地回退到其他技术和技术。
SignalR还提供了一个非常简单的高级API,用于在ASP.NET应用程序中执行服务器到客户端RPC(在客户端的浏览器中从服务器端.NET代码调用JavaScript函数),以及为连接管理添加有用的钩子,例如连接/断开事件,分组连接,授权。
---来自SignalR的官方说明
根据SignalR的官网教程,做一些简单的解析。
1.想要使用SignalR要引入它的组建,Microsoft.AspNet.SignalR。
在你的web项目中,应用NuGet包工具引入。怎么引入包可以到NuGet的官网看教程。
2.新建一个SignalR集线器类,这样就会得到一个集成自Hub的类,
可以通过打标签的方式改变集线器的名字,这在客户端代码会用到。
方式是[HubName("myHub")],命名空间是在Microsoft.AspNet.SignalR.Hubs下。
3.引入一个配置类,这里用的是Startup,可以通过OWIN Startup类获得。
代码如下:
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
app.MapSignalR();
}
}
}
这个类现在的作用就是配置。其中app.MapSignalR();就是配置所有的集线器。
其中IAppBuilder在Owin命名空间,OwinStartup在Microsoft.Owin命名空间。
4.客户端(这里使用的是网页的客户端,是用js代理的)
引入SIgnalR组件的时候,会生成一个Scripts文件,里面包含JQuery和signaR的js文件。
在做网页前可以先测试signalR是否配置成功,通过 项目地址/signalr/hubs如能打开,
显示文件就证明配置成功了。文件里说明了代理的js‘类’;
在客户端按顺序引入JQuery、signalr。最后引入<script src="/signalr/hubs"></script>
这样一个文件,因为它是动态生成的,所以看不见,这个就是之前测试所在的文件集;
接下来就可以写js代码了:
var proxy=$.connection.chatName;其中chatName是你集线器的名称。这样就拿到了hub代理成员。
这里我测试的是hub的名字首字母是小写的,大写的会找不到,具体的可以通过"/signalr/hubs"这个路径找。
proxy.client.addMessage(function(){
alert("对了");
});
//这里是注册客户端的方法,让服务端调用,也就是之前新建的hub。
$.connection.hub.start().done(function(){
$("#btn").click(function(){
proxy.server.hello();
});
});
//start是开启连接,done是开启连接成功后的回调函数
//在这个回调函数中调用了服务端hello方法。
其中服务段方法为
public void Hello()
{
Clients.All.addMessage(); }
在服务端又调用了客户端的方法,addMessage就是注册在服务端的方法。
$.connection 拿到建立的这个连接。
$.connection.hubName 拿到连接里对应的hub对象
$.connection.hubName.client 拿到客服端对象。
$.connection.hubName.server 拿到服务端对象。
SignalR的简单实现(一)的更多相关文章
- [SignalR]一个简单的聊天室
原文:[SignalR]一个简单的聊天室 1.说明 开发环境:Microsoft Visual Studio 2010 以及需要安装NuGet. 2.添加SignalR所需要的类库以及脚本文件: 3. ...
- 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 ...
- SignalR的简单实现消息广播
之前由于一个项目的需要(简单说一下,一个网页游戏,裁判的页面点击开始按钮,玩家便可以开始游戏),研究了很久,最终一个同事跟我推荐了SignalR.距离项目结束已经有一段时间了,再来回顾一下Signal ...
- SignalR的简单使用(二)
原文:SignalR的简单使用(二) 之前提到SignalR代理在网页,通过生成的Js来完成相关的功能.但我不禁想一个问题, 难到SignalR的服务端就能寄存在web端吗,通过访问网页能方式才能启动 ...
- SignalR + MVC5 简单示例
本文和前一篇文章很类似,只不过是把 SignalR 应用在了 MVC 中 新建项目,选择 MVC 模板 安装 SignalR Install-Package Microsoft.AspNet.Sign ...
- SignalR的简单实现
1创建mvc的空项目 2添加文件夹Counters放在里面的类用于封装性能计数器 3创建PerfCounterWrapper类用于封装性能计数器的实体 using System; using Syst ...
- SignalR 前期简单配置
一.随便你在哪个命名空间下新建一个Startup类,并在在该类中注册SignalR. using Owin; using System; using System.Collections.Generi ...
- SignalR简单示例教程入门版
上周五最后一天在公司上班,无聊之余就想做点什么.介于之前有人让我做个简易版的在线聊天的,于是乎就打算花一天时间来弄下关于SignalR的简单教程制作一个在线的聊天的. 1:前端用了国产的一个MVVM框 ...
- SignalR循序渐进(一)简单的聊天程序
前阵子把玩了一下SignalR,起初以为只是个real-time的web通讯组件.研究了几天后发现,这玩意简直屌炸天,它完全就是个.net的双向异步通讯框架,用它能做很多不可思议的东西.它基于Owin ...
随机推荐
- Oracle成长点点滴滴(2)— 权限管理
权限管理中权限包含系统权限以及对象权限.在解说权限管理之前我们先来了解用户的创建以及授权这些前提. 1. 创建用户以及授权 Ø 默认用户 既然提到了创建用户,首先必须先把用户的知识攻克了. ...
- .net core 下监控Sql的执行语句
原文:.net core 下监控Sql的执行语句 最近在编写.net core程序,因为数据库从Sql Server 切换到 MySql的原因,无法直接查看sql的具体语句,随着业务量的剧增,痛苦也与 ...
- php课程 6-20 字符串基础和去除空格和字符串填补函数
php课程 6-20 字符串基础和去除空格和字符串填补函数 一.总结 一句话总结: 二.字符串 字符串定义:$str='hello world!'; 输出字符串:echo $str;print $s ...
- 通过手机其他iOS应用打开此文件
根据所处理文档的格式,提供本地设备(InApp)能处理该格式文档的所有应用(App).比如,demo中所处理的是pdf格式的文档,那么可以打开该文档的本地app有邮件.打印等等.仅支持ARC. dem ...
- 警告异常:Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5
1.打开 regedit.exe 注册表编辑器 2.找出文件名称 HKEY_CURRENT_USER\Software\JavaSoft 和 HKEY_LOCAL_MACHINE\SOFTWARE\J ...
- Delphi绘图相关对象(TCanvas对象的方法)
TCanvas对象的方法 方法 说明 Arc Arc(x1,y1,x2,y2,x3,y3,x4,y4 : Integer); Arc方法在椭圆上画一段弧,椭圆由(x1,y1).(x2,y2) 两点所确 ...
- Struts2——(2)配置文件、通配符
一.Struts配置文件 (1)struts-default.xml(框架自带) 定义了一些框架自带的Result组件,拦截器组件. <package name="struts-def ...
- java中判断字符串中是否有中文字符
package com.meritit.test; public class TestChart { public static void main(String[] args) throws Exc ...
- Android 项目编译过程
Android 工程构建的持续集成,需要搭建一套编译和打包自动化流程,比如建立每日构建系统.自动生成发布文件等等.这些都需要我们对Android工程的编译和打包有一个比较深入的理解,例如知道它的每一步 ...
- SSH框架的搭建与配置文件的书写格式
通常Java Web 开发的时候,我们一般会采用三大框框架的整合来架构,这样做主要是为方便维护.但是有时候会忘了一些配文件(*.xml)的格式头,这里主要就三大框架Spring.struts.hibe ...