【发布时间】:2012-08-05 01:50:33
【问题描述】:
我第一次尝试使用 signalR,但是当我的集线器“simpleEvent”始终未定义时
$(document).ready(function () {
var simple = $.connection.simpleEvent;
....
如果我转到 localhost/mywebapp/signalR/hubs,我会收到以下错误消息:“无法从 localhost 下载集线器。无法打开此 Internet 站点。请求的站点不可用或找不到。”。但是,如果我再试一次,则已下载集线器,并且看起来它具有正确的集线器信息,例如
// Create hub signalR instance
$.extend(signalR, {
simpleEvent: {
_: {
hubName: 'MyCorp.Siep.App.Web.UI.SimpleEventHub',
ignoreMembers: ['init', 'timerExpired', 'namespace', 'ignoreMembers', 'callbacks'],
connection: function () { return signalR.hub; }
},
init: function (callback) {
return serverCall(this, "Init", $.makeArray(arguments));
},
timerExpired: function (state, callback) {
return serverCall(this, "TimerExpired", $.makeArray(arguments));
}
}
});
signalR.hub = signalR("/App.Web.UI/signalr")
.starting(function () {
updateClientMembers(signalR);
})
.sending(function () {
var localHubs = [];
$.each(hubs, function (key) {
var methods = [];
$.each(this, function (key) {
if (key === "obj") {
return true;
}
methods.push(key);
});
localHubs.push({ name: key, methods: methods });
});
this.data = window.JSON.stringify(localHubs);
})
.received(function (result) {
var callbackId, cb;
if (result) {
if (!result.Id) {
executeCallback(result.Hub, result.Method, result.Args, result.State);
} else {
callbackId = result.Id.toString();
cb = callbacks[callbackId];
if (cb) {
callbacks[callbackId] = null;
delete callbacks[callbackId];
cb.callback.call(cb.scope, result);
}
}
}
});
我已经尝试过 SignalR 示例,它们工作正常,我已经阅读了很多关于此错误的其他论坛帖子,其中大多数似乎是因为不正确,我假设如果我可以下载集线器,那么这不是问题。还有什么可能导致这个问题?
我正在尝试在以下范围内使用 signalR: - 一个网络应用程序 - 在 Visual Studio 2010 部署服务器和 iis 7 中运行 - 互联网探索者 8 - Windows 2008 服务器
任何帮助将不胜感激。
【问题讨论】:
标签: javascript signalr signalr-hub