建立好持久性连接类TestConnection之后,现在为我们的SignalR程序配置持久性连接类以及访问路径。

进入刚刚建立的Startup类,进入Configuration这个方法里来配置:

 using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin; [assembly: OwinStartup(typeof(Startup))] public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR<TestConnection>("/test");//配置指定持久性连接类,同时映射访问路径后面有用,这里可以进行其他配置,后面再说
}
}

配置好后,再来进行客户端调用。

首先,在项目中建一个html的静态网页。

代码如下:

 <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="Scripts/jquery-1.10.2.min.js"></script> <!--引入jquery库-->
<script src="Scripts/jquery.signalR-2.1.2.min.js"></script> <!--这个js是signalR客户端所需要的js,利用 get-package microsoft.aspnet.signalr 安装时会自动生成 -->
<script type="text/javascript">
$(function () {
var connection = $.connection("/test");//根据之前配置好的连接路径来创建连接,/test 就是在Startup类中配置好的持久性连接访问路径
connection.start(function () {//开始连接,进行开始连接后,在TestConnection类中,会执行OnConnected方法
connection.send("你好");//向服务端发送一段数据,那么服务端就会执行OnRecevied方法,同时可以看到从客户端发送过来的数据
});
connection.received(function (data) {//接收服务端传过来的数据,注意这个方法只需要写一遍,他会默认不停地监听从服务端传过来的数据,data就是从服务端发送过来的数据,字符串格式的。
alert(data);
});
});
</script>
<meta charset="utf-8" />
</head>
<body> </body>
</html>

在TestConnection类中,

Connection.Broadcast(data);这个方法还可以传另外的一个参数,就是发送给所有给客户端但是不包括发送给XX。可以给这个方法加另外的拒绝发送给谁的列表,以connectionId为标准

如 Connection.Broadcast("你好",new string[]{connectionId}); 这句话的意思就是把你好发送给所有客户端,但不包括connectionId的这个。正好与Connection.Send 相反,它表示发送给指定的connectionId的客户端。

若需要自己创建的SignalR程序支持跨域或jsonp可以如下设置:

 app.MapSignalR<TestConnection>("/test", new ConnectionConfiguration() { EnableJSONP = true });//在Startup的Configuration方法中配置持久性连接映射路径添加配置

  app.Map("/test", map =>
{
map.UseCors(CorsOptions.AllowAll);//允许使用Cors方式
map.RunSignalR<TestConnection>();
} );

不过上面中的UseCors和CorsOptions这几个成员需要用到microsoft.owin.cors中提供的扩展方法,那么就需要安装相对应的库了

命令如下:

 install-package microsoft.owin.cors

静态页面中这样写:

 $(function () {
var connection = $.connection("http://127.0.0.2/test");
connection.start({jsonp:true},function () {
connection.send("你好");
});
connection.received(function (data) {
console.log(data);
});
});

SignalR入门之小试身手的更多相关文章

  1. [置顶] MVC中使用signalR入门教程

    一.前言:每次写总要说一点最近的感想 进入工作快半年了,昨天是最郁闷的一天,我怀疑我是不是得了"星期一综合征",每个星期一很没有状态.全身都有点酸痛,这个可能一个星期只有周末才打一 ...

  2. SignalR 入门 .netCore实现聊天室

    SignalR 入门 .netCore实现聊天室 本文根据微软SignalR 简介 | Microsoft Docs 和 ASP.NET Core SignalR 简介 | Microsoft Doc ...

  3. ASP.NET SignalR入门

    前言 之前在培训ASP.NET WebAPI的时候有提过SignalR这个技术,但当时只是讲了是用来做什么的,并没有多说.因为自己也是画图找资料的时候见到的.后来当一直关注的前端大神贤心发布LayIM ...

  4. SignalR入门篇

    写在前面的废话 在写关于SignalR的学习笔记之前研究了几天的webSocket,毕竟这才是未来的技术趋势,虽然很早就听说过WebSocket,但是并没有在实际项目中遇到过,所以也就没有深入研究.通 ...

  5. SignalR入门之Hub

    在持久性连接的基础上,SignalR提供了一个更高层次的抽象层:Hub,基于javascript的灵活性和C#的动态特性,Hub是一个至关重要的开发模式,它消弭了客户端和服务端这两个独立的物理环境之间 ...

  6. SignalR入门之持久性连接

    为了保持客户端和服务端之间的持久性连接的开发性,并且使用传输在这这样的连接上发送数据,这个用来访问SignalR持久性连接的底层API提供了一个隐藏底层固有复杂性的抽象层. 事实上,通过该API访问通 ...

  7. SignalR入门之多平台SignalR服务端

    之前创建SignalR服务端是基于Web应用程序而言的.那么能不能把SignalR服务端做成控制台应用程序.Winform或windows服务呢? 答案是肯定的. 之前尽管看起来好像是IIS和ASP. ...

  8. SignalR入门之从外部访问持久性连接或Hub

    有的时候,需要从外部访问持久性连接或Hub服务. 比如,假设A和B两个客户端正在聊天,那么系统或第三方在不参与聊天的情况需要为他们发送系统消息,那么此时,就需要独立来访问持久性连接或Hub服务. 之前 ...

  9. SignalR入门之基本介绍

    SignalR是微软对web开发技术的扩充,它是一种框架,方便用来创建实时应用程序. 有一些即时消息系统,实时协作工作集,多人在线游戏,信息广播服务等其他需要在信息产生时就能进行发送的任务系统. 对于 ...

随机推荐

  1. JavaScript思维导图—变量

    JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/

  2. 根据Excel的内容和word模板生成对应的word文档

    Sub setname() Dim I As Integer Dim pspname As String Dim pspnumber As String Dim path As String Dim ...

  3. redis(二)高级用法

    redis(二)高级用法 事务 redis的事务是一组命令的集合.事务同命令一样都是redis的最小执行单元,一个事务中的命令要么执行要么都不执行. 首先需要multi命令来开始事务,用exec命令来 ...

  4. Silverlight中将WriteableBitmap互转byte数组

    //WriteableBitmap to ARGB ;    , result, , len);    , bmp.Pixels, , buffer.Length); }

  5. js模版引擎handlebars.js实用教程——if-判断的基本用法

    返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...

  6. Canvas 内部元素添加事件处理

    目录 前言 自定义事件 有序数组 元素父类 事件判断 其他 立即执行函数 apply, call, bind addEventListener 传参 调用父类的构造函数 对象检测 isPointInP ...

  7. CSS3 transform 属性详解(skew, rotate, translate, scale)

    写这篇文章是因为在一个前端QQ群里,网友 "小豆豆" (应他要求要出现他的网名......) ,问skew的角度怎么算,因为他看了很多文章还是不能理解skew的原理.于是,我觉得有 ...

  8. JS面向对象逆向学习法,让难理解的统统一边去(1)~

    对于面向对象我只能说呵呵了,为什么呢,因为没对象--- 既然你看到了这里,说明你有一定的基础,虽然本系列文章并不会过多的讲述基础部分,请做好心理准备. 本篇比较简单,这篇文章的意义是让你明白学习面向对 ...

  9. JavaScript实现DDoS攻击原理,以及保护措施。

    DDos介绍 最普遍的攻击是对网站进行分布式拒绝服务(DDoS)攻击.在一个典型的DDoS攻击中,攻击者通过发送大量的数据到服务器,占用服务资源.从而达到阻止其他用户的访问. 如果黑客使用JavaSc ...

  10. 深入理解javascript函数系列第二篇——函数参数

    × 目录 [1]arguments [2]内部属性 [3]函数重载[4]参数传递 前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传 ...