我正在寻找快速而肮脏的答案。我只是一片空白,盯着屏幕看了超过12个小时后,我想我中枪了。
我想做一个简单的SignalR应用程序作为教程。我找到了这个example,但我一直收到票证未定义的错误。我已经找到了更多的错误,并且总是得到相同的错误。我将示例项目与我的项目进行了比较,但我找不到任何描述。
看起来好像$.connection.ticketHub或$.connection.chat返回的是未定义的对象。我需要对/signalr/hubs做些什么特殊的事情吗?任何其他想法,我们都非常感谢。
发布于 2012-01-20 04:01:00
您需要将/ SignalR /hubs添加到页面中,它是由SignalR动态生成的javascript,其中包含hubs的方法存根以及hubs上的方法。
因此,如果您有一个名为TestHub的.NET-hub,则会生成一个名为SendMessage(string message)的方法,这样您就可以从javascript调用:$.connection.testHub.sendMessage("some message to server");
将浏览器指向url: /signalr/hubs,您应该会得到一个javascript。
向下大约150行,您将看到ticketHub存根:
$.extend(signalR, {
ticketHub: {
_: {
hubName: 'YourNameSpace.TicketHub',
ignoreMembers: ['someMethod', 'namespace', 'ignoreMembers', 'callbacks'],
connection: function () { return signalR.hub; }
},您可以使用Mozilla Firebug插件或Chrome开发人员工具(扳手图标->工具->开发人员工具)来查看发送到服务器和从服务器返回的内容。
编辑: SignalR中存在一个错误,导致无法正确生成/signalr/hubs (它没有生成方法存根)。https://github.com/SignalR/SignalR/issues/134
EDIT2:您的脚本标记可能不正确,请尝试:
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>或者您尚未引用SignalR.AspNet.dll程序集。如果我没记错的话,就是这个程序集将路由连接到/signalr。
发布于 2012-01-23 19:42:45
你在使用IE8吗?
如果是,请确保在signalR脚本之上包含一个Json2脚本引用:
<script src="../../Scripts/json2.min.js" type="text/javascript"></script>(从Nuget获取Json2 )
发布于 2012-06-14 12:57:43
将脚本标记更改为:
<script type="text/javascript" src='<%= ResolveClientUrl("~/signalr/hubs") %>'></script>https://stackoverflow.com/questions/8920621
复制相似问题