signalr / negotiate no json response - no signalr / connect

时间:2013-04-30 11:03:45

标签: jquery asp.net signalr negotiate

我正在尝试在我们正在进行的项目中使用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文件夹或项目的根目录中。

我很感激任何帮助,因为我已经没有想法,如何以及在哪里寻找解决方案。

2 个答案:

答案 0 :(得分:0)

@suleks,

您的页面是否遗漏了“信号器/集线器”脚本?

<script src="signalr/hubs" type="text/javascript"></script>

答案 1 :(得分:0)

好的,所以我们的服务器出现了问题,阻塞了一切。感谢您查看我们的问题。 问题可以结束。