即使在正确加载脚本后,$ .connection.chatHub在signalR中也未定义

时间:2017-07-12 10:47:03

标签: jquery asp.net-mvc signalr

我正在尝试在现有的signalR应用中使用MVC。我按顺序加载脚本。我可以在浏览器网络控制台中看到jQuery和集线器脚本。但是,我收到一条错误消息,指出chatHub未定义。 令人惊讶的是,当我尝试调试代码并在

上设置断点时
proxies.chatHub = this.createHubProxy('chatHub');

然后当我进入控制台并输入$.connectrion.chatHub时,我可以看到该对象的所有属性。但是,当我结束调试时,$.connection未定义,然后无效。 请帮我解决一下。我已经尝试了signalR的所有可用链接并尝试了所有可能性,但我的问题似乎有所不同。 我正在使用signalR-1.0.1.

1 个答案:

答案 0 :(得分:0)

如果您使信号灯主机与您的项目不同,则无法正确找到

<script src="~/signalr/hubs"></script> 

所以你需要指定像

<script src="http://localhost:{Your SignalR Host Port}/signalr/hubs"></script>

此外,如果你想比较,这里有一个完整的例子。 https://github.com/DenizGokce/SignalR

编辑:

这就是信号器框架如何工作,你需要在集线器中定义像OnlineClient这样的结构,你需要在服务器端绑定那些不同的connectionId

public class OnlineClient{
      public Int SomeClientId; /*You Defined*/
      public List<String> ConnectionIds {get;set;}
}

public List<OnlineClient> _onlineClients = new List<OnlineClient>();

像这样你需要在服务器端管理你的客户端