SignalR入门之小试身手

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

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

 1 using System;
 2 using System.Threading.Tasks;
 3 using Microsoft.Owin;
 4 using Owin;
 5 
 6 [assembly: OwinStartup(typeof(Startup))]
 7 
 8 public class Startup
 9 {
10     public void Configuration(IAppBuilder app)
11     {
12         app.MapSignalR("/test");//配置指定持久性连接类,同时映射访问路径后面有用,这里可以进行其他配置,后面再说
13     }
14 }

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

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

代码如下:

 1 
 2 
 3 
 4 "Content-Type" content="text/html; charset=utf-8"/>
 5     
 6      
 7      
 8     
19     "utf-8" />
20 
21 
22 
23 
24 

 

在TestConnection类中,

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

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

 

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

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

1  app.Map("/test", map =>
2         {
3             map.UseCors(CorsOptions.AllowAll);//允许使用Cors方式
4             map.RunSignalR();
5         }
6 
7          );

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

命令如下:

1 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入门之小试身手)