首页 > 代码库 > 使用SignalR 2 注意事项
使用SignalR 2 注意事项
1、出现错误: signalR Error during WebSocket handshake: net::ERR_CONNECTION_RESET
<system.web>
<httpRuntime targetFramework="4.5" />
</system.web>
2、引用SignalR 最新版
SignalR 2 需要.Net 4.5
PM> Install-Package Microsoft.AspNet.SignalR
默认使用的是 Newtonsoft.Json.6.0.0 , 如果项目之前已经引用过了 Newtonsoft.Json,请改为与 SignalR 同版本的!
3、创建Startup.cs 类
using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(WD.Web.MVC.Startup))] namespace WD.Web.MVC { public class Startup { public void Configuration(IAppBuilder app) { // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888 app.MapSignalR(); } } }
4、创建集线器 ChatHub.cs 类
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Web; using Microsoft.AspNet.SignalR; using System.Runtime.Serialization.Json; using Newtonsoft.Json; using WD.Db.Contract; using WD.Web.MVC.Common; using WD.Web.MVC.SignalR; namespace WD.Web.MVC { public class ChatHub : Hub { public void Online() { Clients.All.SendMsg("张三","上线了" ); } } }
5、客户端初始化
var chat = $.connection.chatHub; (chatHub 为后台集线器的类名,不过要把首字母小写)
chat.client.SendMsg = function (name, message) {
// SendMsg与集线器中的函数名保持一致,例:Clients.All.SendMsg("张三", "上线啦"),返回参数自定义,保持一致即可
//TODO 处理接受消息
};
$.connection.hub.start().done(function () {
//TODO 发送上线消息
chat.server.online();
//TODO 初始化各种事件
})
使用SignalR 2 注意事项
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。