Signalr 通常通过集线器和连接在“服务器”端 ASP.NET 中使用。我想要实现的目标(如果可能的话)是使用信号器作为网站中的“客户端”。 我有 2 个网站,一个作为服务器,另一个作为客户端。
我试过了
public void Start()
{
new Task(this.Listen).Start();
//new Thread(this.Listen).Start();
}
private async void Listen()
{
try
{
using (var hubConnection = new HubConnection("http://localhost:8081"))
{
var myHub = hubConnection.CreateHubProxy("mediaHub");
hubConnection.StateChanged += change => System.Diagnostics.Debug.WriteLine(change.OldState + " => " + change.NewState);
myHub.On<string>(
"log",
message =>
System.Diagnostics.Debug.WriteLine(message + " Notified !"));
await hubConnection.Start();
}
}
catch (Exception exc)
{
// ...
}
}
服务器正在这样调用客户端:
var hub = GlobalHost.ConnectionManager.GetHubContext<MediaHub>() ;
hub.Clients.All.log("Server: " + message);
没有任何内容到达客户端!
最佳答案
一旦您的连接准备就绪,您实际上就会将其丢弃,因此它不会保留下来。作为快速测试,删除 using
内容并使您的 hubConnection
成为类的静态成员,然后检查您是否被调用。如果您这样做,那么您可以从那里改进它,但至少您可以更清楚地了解发生了什么。
关于c# - 如何在asp.net网站中使用signalr作为客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23387318/