c# - 如何在asp.net网站中使用signalr作为客户端?

标签 c# asp.net signalr

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/

相关文章:

c# - 在 VS2015 的 UWP 解决方案文件夹中创建了奇怪的子文件夹 "DTAR_08E86330_4835_4B5C_9E5A_61F37AE1A077_DTAR"

c# - 如何使用 EF6 更新多对多表

asp.net - 如何在 ASP.NET MVC/WebAPI 应用程序中支持 HTTP OPTIONS 动词

c# - 如何检查 ASP.NET 页面中是否没有或所有文本框都输入了文本?

c# - 在异步方法中使用时 SignalR 调用不返回

asp.net - SignalR 不在本地 IIS 上工作,但在 IIS Express 上工作

c# - lambda 表达式中的条件顺序

c# - 如何减少多个图像的内存使用?

ASP.NET 错误 :The state information is invalid for this page and might be corrupted

javascript signalR 客户端 : CORS policy error trying to connect to api