我正在尝试在我们目前正在处理的项目中使用 SignalR 库。我已经阅读了一些博客,查看了一些 stackoverflow 答案并检查了 signalr 的文档,但没有任何运气。下面的代码只是我试图使其工作的最简单的示例。
我正在使用带有集线器的 SignalR 1.0.1、jquery 2.0.0、ASP.NET MVC2、.NET Framework 4,信号器/集线器通过Url.Content("~/signalr/hubs")
. 在页面的源代码中,当我单击 signalr/hubs 时,我可以看到 SignalR 生成的 js 代码。
我还在RouteTable.Routes.MapHubs();
Application_Start() My Hub 的开头添加了:
public class Chat : Hub
{
public void Send()
{
Clients.All.addMessage();
}
}
jQuery 文档就绪块中的客户端代码
$(function() {
var chat = $.connection.chat;
chat.client.addMessage = function() {
console.log("hello here");
};
$.connection.hub.logging = true;
$.connection.hub.error(function() {
console.log("An error occured1");
});
$.connection.hub.start()
.done(function() {
alert("Now connected!");
})
.fail(function() {
console.log("Could not connect");
});
});
问题是:
http://localhost/EC/signalr/negotiate
返回状态200 OK,但是响应体是空的,所以没有创建连接。
我尝试设置runAllManagedModulesForAllRequests="true"
,但没有改变任何东西,也尝试过$.connection.hub.url = 'http://localhost/EC/signalr';
但再次没有效果。
我还将我的 hubs 类保存在 Hubs 文件夹或项目的根目录中。
我将不胜感激任何帮助,因为我没有想法,如何以及在哪里寻找解决方案。