.NET使用SignalR出现 Error during WebSocket handshake

admin 发布时间:2016-07-27 分类:.NET 阅读:10991次 3 条评论

ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。自动的适配提供websocket或者长轮询等方式来进行通讯。

在开发的过程中,碰到如下错误:WebSocket connection to 'ws://*****' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET。

由于还是可以使用,且当时以为是系统环境的原因,就放任没理 o(╯□╰)o。后来发现SignalR使用的是长轮询的方式,没有用到websocket。在项目需要优化时候,为了提升流畅度,只能用websocket方式后,项目报错后运行不了,websocket连接失败。

规定只能用使用websocket连接方式:

$.connection.hub.start({ transport: ['webSockets'] })
.done(function () {
    console.log('Connect success!'); 
})
.fail(function () { console.log('Could not Connect!'); });

查找websocket使用不了的原因,是由于web.config文件没有配置好。SignalR正确运行需要在system.web节点下添加下面的配置项:

<httpRuntime maxRequestLength="502400" targetFramework="4.5" requestValidationMode="2.0" />


关键字词: SignalRwebsocket

已有3条留言

发表评论:

◎欢迎您的参与讨论。