2013-04-30 29 views
0

我正在尝试在我们当前正在使用的项目中使用SignalR库。我读过几个博客,看了几个stackoverflow答案,并检查了信号的文件,但没有任何运气。 下面的代码只是我试图使其工作的最简单的示例。singlar/negotiate no json response - no singlar/connect

我使用SignalR 1.0.1与集线器,jQuery 2.0.0,ASP.NET MVC2,.NET Framework 4, 信号器/集线器通过Url.Content("~/signalr/hubs")加载。 在页面的源代码中,当我点击signalr /集线器时,我可以看到SignalR生成的js代码。

我还添加了RouteTable.Routes.MapHubs();到的Application_Start() 我枢纽的开头:jQuery的文件准备块

public class Chat : Hub 
{ 
    public void Send() 
    { 
     Clients.All.addMessage(); 
    } 
} 

客户端代码

$(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

控制台输出是什么样的? – davidfowl 2013-04-30 18:26:02

回答

0

@suleks,

以任何机会就是你的网页缺少 “signalr /枢纽” 的剧本?

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

好的,所以它发生了我们的服务器,它阻止了一切问题。感谢您查看我们的问题。 问题可以关闭。

+1

你是怎么修复它的?你有没有在服务器上打开一些端口或其他东西?我面临同样的问题,我没有得到signalr/connect或signalr/reconnect的响应,我怀疑这会导致某些客户端产品断开连接,并且除非手动尝试重新连接,否则不会重新连接。 – aliirz 2013-12-12 16:44:22