SignalR 必须在逻辑之前调用 .done 或 .fail
SignalR must call .done or .fail before logic
我正在尝试使用 SignalR 创建一个简单的 hello world。我有一个集线器,
public class MyHub : Hub
{
public void TestConnection(string message)
{
Clients.Caller.testConnection(message);
}
}
和一个JS文件(使用Angular),
var hub = $.connection.myHub;
hub.client.testMessage = function (message) {
console.log("Test: " + message);
};
$.connection.hub.start().done(function () {
alert('signalR started');
}).fail(function (reason) {
console.log("SignalR connection failed: " + reason);
});
hub.server.testConnection("hello signalR").done(function () { });
当我加载页面时,我只想让控制台显示 "hello signalR"。我收到一条错误消息:SignalR:连接尚未完全初始化。在连接启动后使用 .start().done() 或 .start().fail() 到 运行 逻辑。
我做错了什么?
试试这个:
$.connection.hub.start().done(function () {
alert('signalR started');
hub.server.testConnection("hello signalR").done(function () { });
});
在服务器上:
Clients.All.testConnection(message);
hub.server 中的函数必须在连接启动后调用。在您的示例中,javascript 是 运行 但集线器连接尚未完成启动,因此您将其放入 .done()
的回调中
这可能无法解决问题,但您应该从 C# 方法而不是 testConnection 调用 testMessage。
我正在尝试使用 SignalR 创建一个简单的 hello world。我有一个集线器,
public class MyHub : Hub
{
public void TestConnection(string message)
{
Clients.Caller.testConnection(message);
}
}
和一个JS文件(使用Angular),
var hub = $.connection.myHub;
hub.client.testMessage = function (message) {
console.log("Test: " + message);
};
$.connection.hub.start().done(function () {
alert('signalR started');
}).fail(function (reason) {
console.log("SignalR connection failed: " + reason);
});
hub.server.testConnection("hello signalR").done(function () { });
当我加载页面时,我只想让控制台显示 "hello signalR"。我收到一条错误消息:SignalR:连接尚未完全初始化。在连接启动后使用 .start().done() 或 .start().fail() 到 运行 逻辑。
我做错了什么?
试试这个:
$.connection.hub.start().done(function () {
alert('signalR started');
hub.server.testConnection("hello signalR").done(function () { });
});
在服务器上:
Clients.All.testConnection(message);
hub.server 中的函数必须在连接启动后调用。在您的示例中,javascript 是 运行 但集线器连接尚未完成启动,因此您将其放入 .done()
的回调中这可能无法解决问题,但您应该从 C# 方法而不是 testConnection 调用 testMessage。