Моя настройка
Visual Studio 2019 16.3.8Xamarin.Forms 4.2Microsoft.AspNet.SignalR.Client 2.4.1Microsoft.NETCore.UWP 6.1.9
Я подписан на https://montemagno.com/real-time-communication-for-mobile-with-signalr/
В разделе Интеграция концентратора в ваше приложение Xamarin
HubConnectionBuilder() "the type or namespace could not be found".
Visual Studio хочет, чтобы я установил Microsoft.AspNetCore.SignalR.Client.Core
. Если я это сделаю, .WithUrl
все еще не будет * Кроме того, HubConnection hubConn = new HubConnectionBuilder()
жалуется на неоднозначную ссылку, поскольку у меня теперь есть клиенты AspNet и AspNetCore SignalR.
Этот следующий почти работаетно я получаю 404
HubConnection hubConn = new HubConnection("http://localhost:53206");
var heartbeat = hubConn.CreateHubProxy("heartbeatHub");
hubConn.Start().Wait();
heartbeat.Invoke("Heartbeat", "abc", "abc123");
То, что пытается сделать вышеупомянутое, это вызвать мой хаб
public class HeartbeatHub : Hub
{
public async Task HeartBeat(string item1, string item2)
{
await Task.Run(() =>
AccountManager.Instance.HeartBeat(item1, item2)
);
}
}
In Startup.cs
endpoints.MapHub<HeartbeatHub>("/heartbeatHub");
Кроме того, так какЯ делаю это с localhost, я проверил, что Visual Studio запускает IISExpress в localhost:53206
. Я отключил SSL в свойствах отладки проекта Forms. Также при запуске я закомментировал app.UseHttpsRedirection();
404 происходит, когда клиент получает hubConn.Start().Wait();
Сообщение не очень полезно.
HttpClientException: StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Server: Microsoft-IIS/10.0
Transfer-Encoding: chunked
Date: Fri, 08 Nov 2019 19:49:47 GMT
X-Powered-By: ASP.NET
}
Монтемагно опубликовал свою статью только годтому назад. Почему его код не работает? Альтернативный подход я выучил здесь: https://www.c -sharpcorner.com / article / xamarin-android-a-quick-демонстрация-сигнализатора / . Но это дает мне 404. Или apporach не должен работать в UWP?