我想要一个非常简单的 .NET 4.5 中的 WebSocket 示例,但无法让任何示例/教程正常工作。我开始认为它实际上是我的系统而不是样本(其中一些已经过时,例如参考 W8 RC)。所以我试图找出没有发生什么事情的地方。我正在努力寻找客户端和服务器方法之间的联系。作为参考,我正在使用 Firefox 23.0.1 和 IE10.0.8 在 VS2012 Ultimate 上开发所有更新都最新的 Windows 8 Ultimate 的新安装。
下面的客户端提示输入用户名,允许用户输入文字,点击发送按钮后清除文字。服务器 OnConnect 在用户输入他们的用户名后触发 - 仅此而已。OnDisconnect 永远不会触发,但这可能是客户端没有很好地终止。Send 方法永远不会被调用 - 这是 chat.server.send() 应该调用的(即使大小写不同(如果我匹配它们也不会改变结果))?
Firefox 网络调试器显示定期出站 GET,但单击“发送”按钮时什么也没有。引用的脚本似乎没问题。
为长篇道歉:不可避免地我仍然忘记了一些相关的事情!
HtmlPage1.html:
<!DOCTYPE html>
<html>
<head>
<title>SignalR Simple Chat</title>
<style type="text/css">
.container {
background-color: #99CCFF;
border: thick solid #808080;
padding: 20px;
margin: 20px;
}
</style>
</head>
<body>
<div class="container">
<input type="text" id="message" />
<input type="button" id="sendmessage" value="Send" />
<input type="hidden" id="displayname" />
<ul id="discussion">
</ul>
</div>
<!--Script references. -->
<!--Reference the jQuery library. -->
<script src="/Scripts/jquery-1.6.4.min.js" ></script>
<!--Reference the SignalR library. -->
<script src="/Scripts/jquery.signalR-1.1.3.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="/signalr/hubs"></script>
<!--Add script to update the page and send messages.-->
<script type="text/javascript">
$(function () {
// Declare a proxy to reference the hub.
var chat = $.connection.chatHub;
$.connection.hub.logging = true;
// Create a function that the hub can call to broadcast messages.
chat.client.broadcastMessage = function (name, message) {
// Html encode display name and message.
var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text(message).html();
// Add the message to the page.
$('#discussion').append('<li><strong>' + encodedName
+ '</strong>: ' + encodedMsg + '</li>');
};
// Get the user name and store it to prepend to messages.
$('#displayname').val(prompt('Enter your name:', ''));
// Set initial focus to message input box.
$('#message').focus();
// Start the connection.
$.connection.hub.error(function (error) {
console.log('SignalR error: ' + error)
});
$.connection.hub.connectionSlow(function () {
console.log('We are currently experiencing difficulties with the connection.')
});
$.connection.hub.start()
.fail(function(){ console.log('Could not Connect!'); })
.done(function () {
console.log('Now connected, connection ID=' + $.connection.hub.id);
$('#sendmessage').click(function () {
// Call the Send method on the hub.
chat.server.send($('#displayname').val(), $('#message').val());
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
});
});
</script>
</body>
</html>
全球.asax.cs:
using System;
using System.Web.Routing;
namespace WebSockets2
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
var hubConfiguration = new HubConfiguration();
hubConfiguration.EnableDetailedErrors = true;
RouteTable.Routes.MapHubs(hubConfiguration);
}
protected void Session_Start(object sender, EventArgs e)
{
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Error(object sender, EventArgs e)
{
}
protected void Session_End(object sender, EventArgs e)
{
}
protected void Application_End(object sender, EventArgs e)
{
}
}
}
ChatHub.cs:
using Microsoft.AspNet.SignalR;
using System.Diagnostics;
namespace WebSockets2
{
public class ChatHub : Hub
{
public override System.Threading.Tasks.Task OnConnected()
{
Debug.WriteLine("Connected");
return base.OnConnected();
}
public override System.Threading.Tasks.Task OnDisconnected()
{
Debug.WriteLine("Disconnected");
return base.OnDisconnected();
}
public override System.Threading.Tasks.Task OnReconnected()
{
Debug.WriteLine("Reconnected");
return base.OnReconnected();
}
public void Send(string name, string message)
{
// Call the broadcastMessage method to update clients.
Clients.All.broadcastMessage(name, message);
}
}
}
带有 SignalR 调试的 IE10 控制台输出:
[16:33:06 PDT] SignalR:正在与“/signalr/negotiate”协商。 [16:33:07 PDT] SignalR: Connecting to websocket endpoint 'ws://localhost:39302/signalr/connect?transport=webSockets&connectionToken=8vS3EiKSK94q4-vjGPzBM56zdJ2dNsOmlVXjEc5SoAN0Qjn5Dt0fKjLfrrAmZsV7DzRVIvR3RcVyZvg2ie4sBRyBxOB2hhq_MOUcfXgi-rKtinfCWsy-dlqdu7dbsHdw0&connectionData=%5B%7B%22name%22%3A% 22chathub%22%7D%5D&tid=5' [16:33:07 PDT] SignalR:Websocket 打开 [16:33:07 PDT] SignalR:现在监视保持活动状态,警告超时为 13333.333333333332,连接丢失超时为 20000 现已连接,连接ID=f9c787db-f8f7-49f2-a220-130eefd7d384 SCRIPT12030:WebSocket 错误:网络错误 12030,与服务器的连接异常终止 SignalR 错误: [16:33:17 PDT] SignalR:从 websocket 断开连接不干净。 [16:33:19 PDT] SignalR:关闭 Websocket [16:33:19 PDT] SignalR:清除集线器调用回调并出现错误:连接在收到调用结果之前开始重新连接。 [16:33:19 PDT] SignalR:webSockets 重新连接 [16:33:19 PDT] SignalR: Connecting to websocket endpoint 'ws://localhost:39302/signalr/reconnect?transport=webSockets&connectionToken=8vS3EiKSK94q4-vjGPzBM56zdJ2dNsOmlVXjEc5SoAN0Qjn5Dt0fKjLfrrAmZsV7DzRVIvR3RcVyZvg2ie4sBRyBxOB2hhq_MOUcfXgi-rKtinfCWsy-dlqdu7dbsHdw0&connectionData=%5B%7B%22name%22%3A% 22chathub%22%7D%5D&tid=4' [16:33:19 PDT] SignalR:Websocket 打开 SCRIPT12030:WebSocket 错误:网络错误 12030,与服务器的连接异常终止 SignalR 错误: [16:33:27 PDT] SignalR:从 websocket 断开连接不干净。 [16:33:29 PDT] SignalR:关闭 Websocket [16:33:29 PDT] SignalR:清除集线器调用回调并出现错误:连接在收到调用结果之前开始重新连接。 [16:33:29 PDT] SignalR:webSockets 重新连接 [16:33:29 PDT] SignalR: Connecting to websocket endpoint 'ws://localhost:39302/signalr/reconnect?transport=webSockets&connectionToken=8vS3EiKSK94q4-vjGPzBM56zdJ2dNsOmlVXjEc5SoAN0Qjn5Dt0fKjLfrrAmZsV7DzRVIvR3RcVyZvg2ie4sBRyBxOB2hhq_MOUcfXgi-rKtinfCWsy-dlqdu7dbsHdw0&connectionData=%5B%7B%22name%22%3A% 22chathub%22%7D%5D&tid=0' [16:33:29 PDT] SignalR:Websocket 打开
“不干净的断开连接”到“SCRIPT12030”消息每 10 秒重复一次。
从 IIS 中找到一些日志:
#软件:Microsoft Internet 信息服务 8.0 #版本:1.0 #日期:2013-09-09 19:09:52 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-状态时间 2013-09-09 19:09:52 ::1 GET /HtmlPage1.html - 22016 - ::1 Mozilla/5.0+(Windows+NT+6.2;+WOW64;+rv:23.0)+Gecko/20100101+Firefox/ 23.0 - 200 0 0 12 2013-09-09 19:09:52 ::1 GET /Scripts/jquery-1.8.2.min.js - 22016 - ::1 Mozilla/5.0+(Windows+NT+6.2;+WOW64;+rv:23.0 )+壁虎/20100101+Firefox/23.0 http://localhost:22016/HtmlPage1.html 304 0 0 2 2013-09-09 19:09:52 ::1 GET /Scripts/jquery.signalR-1.0.0.js - 22016 - ::1 Mozilla/5.0+(Windows+NT+6.2;+WOW64;+rv:23.0 )+壁虎/20100101+Firefox/23.0 http://localhost:22016/HtmlPage1.html 304 0 0 2 2013-09-09 19:09:54 ::1 GET /signalr/hubs - 22016 - ::1 Mozilla/5.0+(Windows+NT+6.2;+WOW64;+rv:23.0)+Gecko/20100101+Firefox/ 23.0 http://localhost:22016/HtmlPage1.html 200 0 0 2088 2013-09-09 19:09:56 ::1 GET /signalr/negotiate _=1378753796013 22016 - ::1 Mozilla/5.0+(Windows+NT+6.2;+WOW64;+rv:23.0)+Gecko/20100101+火狐/23.0 http://localhost:22016/HtmlPage1.html 200 0 0 57 2013-09-09 19:10:47 ::1 GET /HtmlPage1.html - 22016 - ::1 Mozilla/5.0+(兼容;+MSIE+10.0;+Windows+NT+6.2;+WOW64;+Trident/6.0 ) - 200 0 0 4 2013-09-09 19:10:47 ::1 GET /Scripts/jquery.signalR-1.0.0.js - 22016 - ::1 Mozilla/5.0+(兼容;+MSIE+10.0;+Windows+NT+6.2 ;+WOW64;+Trident/6.0) http://localhost:22016/HtmlPage1.html 304 0 0 2 2013-09-09 19:10:47 ::1 GET /Scripts/jquery-1.8.2.min.js - 22016 - ::1 Mozilla/5.0+(兼容;+MSIE+10.0;+Windows+NT+6.2 ;+WOW64;+Trident/6.0) http://localhost:22016/HtmlPage1.html 304 0 0 3 2013-09-09 19:10:47 ::1 GET /signalr/hubs - 22016 - ::1 Mozilla/5.0+(兼容;+MSIE+10.0;+Windows+NT+6.2;+WOW64;+Trident/6.0 ) http://localhost:22016/HtmlPage1.html 200 0 0 18 2013-09-09 19:10:51 ::1 GET /signalr/negotiate _=1378753851110 22016 - ::1 Mozilla/5.0+(兼容;+MSIE+10.0;+Windows+NT+6.2;+WOW64;+Trident /6.0) http://localhost:22016/HtmlPage1.html 200 0 0 5
集线器跟踪,根据这篇文章:
SignalR.HubDispatcher 信息:0:缺少组令牌 SignalR.Transports.TransportHeartBeat Information: 0 : Connection is New=(http://localhost:22016/signalr?transport=webSockets&connectionToken=OW1sZ7-1IfaCEVTwDbhhYGoaRWzOO2x2ZWsr05HRCx0test0dwHAfKAO_RsiAF5Px0PqlwnBXruC1s7R-FT2WIGK7k6HYhwCHQvXKOdMIOhLanLIDt2XffrlRraRoB5K0&connectionData=[{"name":"chathub"}]&tid=4). SignalR.MessageBus 信息:0 :创建工作人员,已分配=1,忙碌=0 SignalR.MessageBus 信息:0:工作(d46bad02-f3c7-463f-b398-6a56726060ca) 重新连接 SignalR.HubDispatcher 信息:0:缺少组令牌 SignalR.Transports.TransportHeartBeat Information: 0 : Connection is New=(http://localhost:22016/signalr/connect?transport=webSockets&connectionToken=MtuTMlkThc5eny6GN-myKS9SEWXFIHrM_Qz_btqWsu8U6rDdlyJD8rJuc5YKtTtwR6V6bPlJBENs-jzW5-EjQJAk7xAz6EUdojYWqmaZ2kwMN7chX9zuxJ-lkYf-El6L0&connectionData=[{"name":"chathub "}]&tid=3)。 SignalR.MessageBus 信息: 0 : 不需要添加工人,因为所有分配的工人都不忙,已分配=1,忙=0 SignalR.MessageBus 信息:0:工作(d46bad02-f3c7-463f-b398-6a56726060ca) 连接的 SignalR.Transports.TransportHeartBeat 信息:0:KeepAlive(1e162d2d-505c-4e57-bd36-e3db16eb7045) SignalR.Transports.TransportHeartBeat 信息:0:KeepAlive(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.HubDispatcher 信息:0:缺少组令牌 SignalR.HubDispatcher 信息:0:缺少组令牌 SignalR.Transports.TransportHeartBeat 信息:0:连接存在。关闭之前的连接。Old=(False, http://localhost:22016/signalr/connect?transport=webSockets&connectionToken=MtuTMlkThc5eny6GN-myKS9SEWXFIHrM_Qz_btqWsu8U6rDdlyJD8rJuc5YKtTtwR6V6bPlJBENs-jzW5-EjQJAk7xAz6EUdojYWqmaZ2kwMN7chX9zuxJ-lkYf-El6L0&connectionData=[{"name":"chathub"}]&tid=3) New= (http://localhost:22016/signalr?transport=webSockets&connectionToken=MtuTMlkThc5eny6GN-myKS9SEWXFIHrM_Qz_btqWsu8U6rDdlyJD8rJuc5YKtTtwR6V6bPlJBENs-jzW5-EjQJAk7xAz6EUdojYWqmaZ2kwMN7chX9zuxJ-lkYf-El6L0&connectionData=[{"name":"chathub"}]&tid=0) SignalR.Transports.TransportHeartBeat 信息:0:连接存在。关闭之前的连接。Old=(False, http://localhost:22016/signalr?transport=webSockets&connectionToken=OW1sZ7-1IfaCEVTwDbhhYGoaRWzOO2x2ZWsr05HRCx0test0dwHAfKAO_RsiAF5Px0PqlwnBXruC1s7R-FT2WIGK7k6HYhwCHQvXKOdMIOhLanLIDt2XffrlRraRoB5K0&connectionData=[{"name":"chathub"}]&tid=4) New=(http://localhost:22016 /signalr?transport=webSockets&connectionToken=OW1sZ7-1IfaCEVTwDbhhYGoaRWzOO2x2ZWsr05HRCx0test0dwHAfKAO_RsiAF5Px0PqlwnBXruC1s7R-FT2WIGK7k6HYhwCHQvXKOdMIOhLanLIDt2XffrlRraRoB5K0&connectionData=[{"name=0):" SignalR.Transports.WebSocketTransport 信息:0:结束(1e162d2d-505c-4e57-bd36-e3db16eb7045) SignalR.Transports.WebSocketTransport 信息:0:结束(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.Transports.WebSocketTransport 信息:0:取消(1e162d2d-505c-4e57-bd36-e3db16eb7045) SignalR.MessageBus 信息: 0 : 不需要添加工人,因为所有分配的工人都不忙,已分配=1,忙=0 SignalR.MessageBus 信息:0:工作(d46bad02-f3c7-463f-b398-6a56726060ca) SignalR.Transports.WebSocketTransport 信息:0:取消(71c9aa6b-98f2-40d9-8c38-253cffa9389e) 重新连接 重新连接 SignalR.Transports.WebSocketTransport 信息:0:DrainWrites(1e162d2d-505c-4e57-bd36-e3db16eb7045) SignalR.Transports.WebSocketTransport 信息:0:DrainWrites(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.Transports.WebSocketTransport 信息:0:CompleteRequest(1e162d2d-505c-4e57-bd36-e3db16eb7045) SignalR.Transports.WebSocketTransport 信息:0:EndRequest(1e162d2d-505c-4e57-bd36-e3db16eb7045) SignalR.Transports.WebSocketTransport 信息:0:CompleteRequest(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.Transports.WebSocketTransport 信息:0:EndRequest(71c9aa6b-98f2-40d9-8c38-253cffa9389e) 线程 '' (0x17b8) 以代码 0 (0x0) 退出。 SignalR.HubDispatcher 信息:0:缺少组令牌 SignalR.Transports.TransportHeartBeat Information: 0 : Connection is New=(http://localhost:22016/signalr/connect?transport=webSockets&connectionToken=v1aBCZ1PkjZxeg0WCmonfhqIM4B2Q_o4UpcbhdaVzH3UqvsM6gSuTwTYD4TNjWNTV7IhE0j3aQ0n1Oc33gI7UMfDFoOjiCXSSqakL3Rkv1TY7vm99FRp1YlcevxO0hl90&connectionData=[{"name":"chathub"}]&tid=4). SignalR.MessageBus 信息: 0 : 不需要添加工人,因为所有分配的工人都不忙,已分配=1,忙=0 SignalR.MessageBus 信息:0:工作(d46bad02-f3c7-463f-b398-6a56726060ca) 连接的 SignalR.Transports.TransportHeartBeat 信息:0:KeepAlive(1e162d2d-505c-4e57-bd36-e3db16eb7045) SignalR.Transports.TransportHeartBeat 信息:0:71c9aa6b-98f2-40d9-8c38-253cffa9389e 已死 SignalR.Transports.TransportHeartBeat 信息:0:KeepAlive(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.HubDispatcher 信息:0:缺少组令牌 SignalR.Transports.TransportHeartBeat 信息:0:连接存在。关闭之前的连接。Old=(False, http://localhost:22016/signalr/connect?transport=webSockets&connectionToken=v1aBCZ1PkjZxeg0WCmonfhqIM4B2Q_o4UpcbhdaVzH3UqvsM6gSuTwTYD4TNjWNTV7IhE0j3aQ0n1Oc33gI7UMfDFoOjiCXSSqakL3Rkv1TY7vm99FRp1YlcevxO0hl90&connectionData=[{"name":"chathub"}]&tid=4) New=(http://localhost:22016/signalr ?transport=webSockets&connectionToken=v1aBCZ1PkjZxeg0WCmonfhqIM4B2Q_o4UpcbhdaVzH3UqvsM6gSuTwTYD4TNjWNTV7IhE0j3aQ0n1Oc33gI7UMfDFoOjiCXSSqakL3Rkv1TY7vm99FRp1YlcevxO0hl90&connectionData=]&{ SignalR.Transports.WebSocketTransport 信息:0:结束(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.Transports.WebSocketTransport 信息:0:取消(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.Transports.WebSocketTransport 信息:0:DrainWrites(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.MessageBus 信息: 0 : 不需要添加工人,因为所有分配的工人都不忙,已分配=1,忙=0 SignalR.Transports.WebSocketTransport 信息:0:CompleteRequest(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.Transports.WebSocketTransport 信息:0:EndRequest(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.MessageBus 信息:0:工作(d46bad02-f3c7-463f-b398-6a56726060ca) 重新连接 SignalR.Transports.TransportHeartBeat 信息:0:71c9aa6b-98f2-40d9-8c38-253cffa9389e 已死 SignalR.Transports.TransportHeartBeat 信息:0:66d244c9-d5a4-45a3-8fe0-e0cd7548e29e 已死 SignalR.Transports.TransportHeartBeat 信息:0:KeepAlive(1e162d2d-505c-4e57-bd36-e3db16eb7045) SignalR.Transports.TransportHeartBeat 信息:0:71c9aa6b-98f2-40d9-8c38-253cffa9389e 已死 SignalR.Transports.TransportHeartBeat 信息:0:66d244c9-d5a4-45a3-8fe0-e0cd7548e29e 已死 SignalR.Transports.TransportHeartBeat 信息:0:1e162d2d-505c-4e57-bd36-e3db16eb7045 已死 SignalR.Transports.TransportHeartBeat 信息:0:71c9aa6b-98f2-40d9-8c38-253cffa9389e 已死 SignalR.Transports.TransportHeartBeat 信息:0:66d244c9-d5a4-45a3-8fe0-e0cd7548e29e 已死 线程 '' (0x1b3c) 以代码 0 (0x0) 退出。 SignalR.Transports.TransportHeartBeat 信息:0:1e162d2d-505c-4e57-bd36-e3db16eb7045 已死 SignalR.Transports.TransportHeartBeat 信息:0:71c9aa6b-98f2-40d9-8c38-253cffa9389e 已死 SignalR.Transports.TransportHeartBeat 信息:0:66d244c9-d5a4-45a3-8fe0-e0cd7548e29e 已死 SignalR.Transports.TransportHeartBeat 信息:0:1e162d2d-505c-4e57-bd36-e3db16eb7045 已死 SignalR.Transports.TransportHeartBeat 信息:0:71c9aa6b-98f2-40d9-8c38-253cffa9389e 已死 SignalR.Transports.TransportHeartBeat 信息:0:66d244c9-d5a4-45a3-8fe0-e0cd7548e29e 已死 SignalR.Transports.TransportHeartBeat 信息:0:1e162d2d-505c-4e57-bd36-e3db16eb7045 已死 SignalR.Transports.TransportHeartBeat 信息:0:71c9aa6b-98f2-40d9-8c38-253cffa9389e 已死 SignalR.Transports.TransportHeartBeat 信息:0:删除连接 71c9aa6b-98f2-40d9-8c38-253cffa9389e SignalR.Transports.WebSocketTransport 信息:0:OnDisconnect(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.Transports.WebSocketTransport 信息:0:结束(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.Transports.WebSocketTransport 信息:0:取消(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.Transports.WebSocketTransport 信息:0:DrainWrites(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.Transports.WebSocketTransport 信息:0:CompleteRequest(71c9aa6b-98f2-40d9-8c38-253cffa9389e) SignalR.Transports.WebSocketTransport 信息:0:EndRequest(71c9aa6b-98f2-40d9-8c38-253cffa9389e) 断开连接 SignalR.Transports.TransportHeartBeat 信息:0:66d244c9-d5a4-45a3-8fe0-e0cd7548e29e 已死 SignalR.Transports.TransportHeartBeat 信息:0:1e162d2d-505c-4e57-bd36-e3db16eb7045 已死 SignalR.Transports.TransportHeartBeat 信息:0:66d244c9-d5a4-45a3-8fe0-e0cd7548e29e 已死 SignalR.Transports.TransportHeartBeat 信息:0:1e162d2d-505c-4e57-bd36-e3db16eb7045 已死 SignalR.Transports.TransportHeartBeat 信息:0:66d244c9-d5a4-45a3-8fe0-e0cd7548e29e 已死 SignalR.Transports.TransportHeartBeat 信息:0:删除连接 66d244c9-d5a4-45a3-8fe0-e0cd7548e29e SignalR.Transports.WebSocketTransport 信息:0:OnDisconnect(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.Transports.WebSocketTransport 信息:0:结束(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.Transports.WebSocketTransport 信息:0:取消(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.Transports.WebSocketTransport 信息:0:DrainWrites(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.Transports.WebSocketTransport 信息:0:CompleteRequest(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) SignalR.Transports.WebSocketTransport 信息:0:EndRequest(66d244c9-d5a4-45a3-8fe0-e0cd7548e29e) 断开连接
经进一步调查,补充:
$.connection.hub.start({ transport: 'longPolling' });
有效 - 但我想使用 WebSockets,而不是长轮询!
URL 方法 结果类型 接收 采取 发起者 等待 开始 请求 响应 缓存读取 间隙 http://localhost:39302/HtmlPage1.html GET 304 text/html 317 B 16 ms 刷新 0 16 0 0 0 3624 /Scripts/jquery-1.10.2.js GET 304 应用程序/javascript 341 B 16 毫秒 16 0 16 0 0 3608 /Scripts/jquery.signalR-1.1.3.js GET 304 应用程序/javascript 348 B 16 毫秒 16 0 16 0 0 3608 /signalr/hubs GET 200 应用程序/javascript 3.73 KB 109 毫秒 16 0 109 0 0 3515 /signalr/negotiate?_=1378859920001 GET 200 应用程序/json 0.77 KB 125 毫秒 XMLHttpRequest 2610 0 109 16 0 905
谈判后完全没有。