SignalR 集线器连接在 Xamarin Forms iOS 中不起作用

Posted

技术标签:

【中文标题】SignalR 集线器连接在 Xamarin Forms iOS 中不起作用【英文标题】:SignalR hub connection does not work in Xamarin Forms iOS 【发布时间】:2021-08-17 14:30:14 【问题描述】:

我正在尝试使用以下代码进行连接:

_hubConnection = new HubConnectionBuilder()
    .AddNewtonsoftJsonProtocol()
    .WithUrl(myUrl, options =>
    
        options.AccessTokenProvider = myAccessTokenProvider;
    )
    .WithAutomaticReconnect()
    .Build();
    
await _hubConnection.StartAsync();

在 Xamarin Forms ios 中执行此代码时,出现以下异常:

[0:] 适合类型的构造函数 'Microsoft.Extensions.Options.UnnamedOptionsManager`1[Microsoft.AspNetCore.Http.Connections.Client.HttpConnectionOptions]' 无法定位。确保类型是具体的并且服务是 为公共构造函数的所有参数注册。

我尝试禁用似乎可以解决上述问题的链接,但最终我得到了另一个链接(由StartAsync 调用引发):

找不到方法: Microsoft.AspNetCore.Http.Connections.NegotiationResponse Microsoft.AspNetCore.Http.Connections.NegotiateProtocol.ParseResponse(System.ReadOnlySpan`1)

我该如何解决这个问题?

【问题讨论】:

github.com/mono/mono/issues/20805#issuecomment-791440473 【参考方案1】:

要么禁用 Xaml HotReload,要么使用 VS 2019,要么等待修复..

https://developercommunity.visualstudio.com/t/Bug-in-Visual-studio-2022--Xamarin--Si/1528510

【讨论】:

以上是关于SignalR 集线器连接在 Xamarin Forms iOS 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

SignalR:为啥选择集线器与持久连接?

SignalR .Net Core 多连接

使用 SignalR 集线器向特定连接用户广播消息

SignalR 通过 K8S Ingress 连接

ASP.NET Core SignalR:集线器Hubs

建立连接时的 SignalR Core 调用函数