首先:
下载相关SignalR的库(工具->管理NuGet->搜SignalR(注意联机))
安装…
添加类(新建项后选择):Startup
using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(命名空间名称.Startup))]
namespace 命名空间名称
{
public class Startup//路由注册
{
public void Configuration(IAppBuilder app)
{
//app.MapSignalR();//HUB signalr2.1.0
//app.MapHubs();//HUB signal1.2.0
app.MapSignalR<Hubs.MyConnection>("/temp");//长连接注册路由
}
}
}
前端:
<script type="text/javascript">
//访问路由
var conn = $.connection("/temp");
//连接
conn.start().done(function (){
alert("永久连接:连接成功")
}).fail(function () { alert("永久连接:连接失败,请退出重入") });
//接收
conn.received(function(data)//此为前端接收
{
alert(data);//data为字符串
});
//发送
conn.send("即时消息");
</script>
后端:
添加类(新建项后选择):永久连接类
protected override Task OnReceived(IRequest request, string connectionId, string data)
{
return Connection.Send(connectionId, "收到了消息");//后端Send方法
}
此为永久连接类,只要页面未丢失,连接保持,Hub会断