因此,这是一个较大的项目的一部分,我发布了一个小测试,目的是描述我的问题。它可以在多台浏览器(相同或不同的浏览器)上的一台计算机上正常工作。但是它在不同的计算机之间不起作用。我想也许我误会了SignalR的工作原理,并且犯了一个愚蠢的错误,因为我很沮丧!
Startup.cs:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
集线器:
public class VBMDataHub : Hub
{
public override Task OnConnected()
{
Clients.Others.broadcastConnected();
return base.OnConnected();
}
}
Javascript:
var conn = $.connection.vBMDataHub;
//SIGNALR START
$.connection.hub.start();
conn.client.broadcastConnected = function () {
console.log("ANOTHER USER HAS JUST CONNECTED");
};
现在所有要做的就是,当某人进入该页面时,它将向其他所有人发送控制台消息。因此,例如,如果我在Chrome中打开页面,然后打开另一个标签并转到相同的网址,则第一页将收到该消息。而且,如果我刷新任何一个,则另一个应该会收到消息。
这适用于我在每台计算机上尝试过的多台计算机。但是不会为其他连接/计算机更新。
如果这是我在阅读本教程时忽略的确实很愚蠢的事情,我深表歉意。我觉得也许我在做完全错误的事情,并且误解了signalR的工作原理。