我正在尝试在我们正在进行的项目中使用SignalR库。我已经阅读了一些博客,看了几个stackoverflow的答案并检查了signalr的文档,但没有任何运气。 下面的代码只是我试图使用的最简单的样本。
我正在使用带有Hub的SignalR 1.0.1,jquery 2.0.0,ASP.NET MVC2,.NET Framework 4,
信号器/集线器通过Url.Content("~/signalr/hubs")
加载。
在页面的源代码中,当我点击信号器/集线器时,我可以看到SignalR生成了js代码。
我还在Application_Start()的开头添加了RouteTable.Routes.MapHubs();
我的中心:
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文件夹或项目的根目录中。
我很感激任何帮助,因为我已经没有想法,如何以及在哪里寻找解决方案。
答案 0 :(得分:0)
@suleks,
您的页面是否遗漏了“信号器/集线器”脚本?
<script src="signalr/hubs" type="text/javascript"></script>
答案 1 :(得分:0)
好的,所以我们的服务器出现了问题,阻塞了一切。感谢您查看我们的问题。 问题可以结束。