如何在asp.net网站中使用signaler作为客户端

本文关键字:signaler 客户端 asp net 网站 | 更新日期: 2023-09-27 18:01:00

Signalr通常通过集线器和连接在"服务器"端asp.net中使用。我试图实现的(如果可能的话(是在网站中使用signaler作为"客户"。我有两个网站,一个作为服务器,另一个作为客户端。

我试过这个

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);

没有任何东西到达客户!

如何在asp.net网站中使用signaler作为客户端

一旦您的连接准备好,您就可以实际处理它,这样它就不会一直存在。作为一个快速测试,删除using内容,使hubConnection成为类的静态成员,并检查是否被调用。如果你这样做了,那么你可以从那里完善它,但至少你可以更清楚地了解发生了什么