4

我们正在尝试使用 SignalR 将聊天风格的应用程序作为 Chrome 扩展程序。我们已尝试将我们使用的 SignalR 从 1.1.3 更新到 2.0.0。

我们在加载扩展时收到此错误:

Uncaught Error: SignalR: Error loading hubs. Ensure your hubs reference is correct, e.g. <script src='/signalr/js'></script>.

当我们的 HTML 中有脚本时,我们仍然会收到错误以及 GET 错误。

我们也试过:

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

这是我们的连接设置:

connection = $.hubConnection('http://ourUrl');

在此之前,我们使用它来设置我们的聊天:

var chat = $.connection.chatHub;

这是我们现在的 chatProxy 设置:

chatProxy = connection.createHubProxy('chatHub');

我们在初始设置中没有使用聊天代理。

紧随其后的是我们的 hub.start:

 $.connection.hub.start().done(function () {

我们使用以下方式调用集线器:

chatProxy.invoke('methodName',

我们使用以下方式调用集线器:

chat.server.methodName()

我们正在为集线器设置要调用的函数:

chat.client.functionName = function (token) {

我们目前正在使用这个系统来设置我们的功能以供集线器调用:

chatProxy.on('loginSuccess', function (token) {

由于我们基本上完全遵循了 signalR 2.0.0 教程,因此我们不确定为什么会出现错误并且不确定如何修复代码。它在 Chrome 扩展程序中的功能似乎与在 Web 应用程序中的功能不同。任何想法或意见都会有所帮助,谢谢。

编辑:我们的清单如下所示:

{
"name": "String",
"description": "String",
"version": "1.2",
"app": {
 "background": {
    "scripts": ["/js/background.js", "/js/jquery-2.0.3.js", "/js/window.js", "/js/jquery.signalR-2.0.0.min.js"]
  }
},
"icons": { "16": "/images/icon16.png", "128": "/images/icon128.png" },
"permissions": [ "http://ourUrl/" ]
}

所有的 javascript 代码都在 document.ready() 的顶部。在 window.js 中。

4

1 回答 1

1

我相信你应该http://yourDomain/signalr/hubs在你的页面中包含一个脚本(在这种情况下是扩展背景页面)。但是由于您的扩展程序位于不同的域中,因此您需要允许跨域请求

于 2013-11-06T19:07:15.597 回答