码迷,mamicode.com
首页 > 其他好文 > 详细

使用SignalR 2 注意事项

时间:2017-07-13 22:43:04      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:serial   void   引用   .text   task   chat   code   space   builder   

 

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 注意事项

标签:serial   void   引用   .text   task   chat   code   space   builder   

原文地址:http://www.cnblogs.com/skywolf627/p/7163336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!