首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SignalR - StartUp

SignalR - StartUp
EN

Stack Overflow用户
提问于 2012-01-19 11:16:35
回答 4查看 8.7K关注 0票数 13

我正在寻找快速而肮脏的答案。我只是一片空白,盯着屏幕看了超过12个小时后,我想我中枪了。

我想做一个简单的SignalR应用程序作为教程。我找到了这个example,但我一直收到票证未定义的错误。我已经找到了更多的错误,并且总是得到相同的错误。我将示例项目与我的项目进行了比较,但我找不到任何描述。

看起来好像$.connection.ticketHub$.connection.chat返回的是未定义的对象。我需要对/signalr/hubs做些什么特殊的事情吗?任何其他想法,我们都非常感谢。

EN

回答 4

Stack Overflow用户

发布于 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存根:

代码语言:javascript
复制
$.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:您的脚本标记可能不正确,请尝试:

代码语言:javascript
复制
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>

或者您尚未引用SignalR.AspNet.dll程序集。如果我没记错的话,就是这个程序集将路由连接到/signalr。

票数 14
EN

Stack Overflow用户

发布于 2012-01-23 19:42:45

你在使用IE8吗?

如果是,请确保在signalR脚本之上包含一个Json2脚本引用:

代码语言:javascript
复制
<script src="../../Scripts/json2.min.js" type="text/javascript"></script>

(从Nuget获取Json2 )

票数 3
EN

Stack Overflow用户

发布于 2012-06-14 12:57:43

将脚本标记更改为:

代码语言:javascript
复制
<script type="text/javascript" src='<%= ResolveClientUrl("~/signalr/hubs") %>'></script>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8920621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档