2017-01-19 6 views
1

SignalR für Xamarin hat keine Möglichkeit, durch WebSockets zu arbeiten.Xamarin Messaging von WebSockets SignalR

Ich habe einen Web-Service mit Messaging von SygnalR von Websockets.

Kann ich eine Nachricht in Xamarin empfangen, ohne SignalR zu Xamarin zu implementieren?

Ist es wichtig, SignalR auf der Xamarin-Client-Seite zu haben?

Antwort

1

Wenn Sie einen SignalR Hub in Ihrem Server implementiert haben, können Sie SignalR Client nugget in Xamarin verwenden. Der Transport wird standardmäßig SSE (Server Sent Events) sein, aber es funktioniert ziemlich gut.

Das Implementieren eines Websockets im Client, nur um eine Verbindung zu einem SignalR-Server herzustellen, macht überhaupt keinen Sinn, es sei denn, Sie müssen wirklich WebSockets anstelle von SSE verwenden.

+0

Funktioniert SignalR in Xamarin durch Websockets? – Atlantis

+0

Es funktioniert nicht über Web-Sockets, es funktioniert über SSE, aber es funktioniert – xleon

1

SignalR verwendet Transporte, um eine Verbindung zum Server herzustellen. Die portable Version des SignalR-Clients unterstützt den webSockets-Transport nicht, da keine portable Version des WebSocket-Clients verfügbar ist. Dies ist in Ordnung, da es zwei weitere Transporte gibt - longPolling und serverSentEvents, die verwendet werden können, um mit dem Server zu kommunizieren.

Sie können keine Verbindung zum SignalR 2.x-Server mit blanken webSockets herstellen. Es gibt eine protocol, die befolgt werden muss, und wenn ein Client dieser protocol nicht folgt, werden seine Anforderungen abgelehnt. Wenn Sie unbedingt Websockets verwenden müssen, können Sie Ihren eigenen Websocket-Transport implementieren, indem Sie die Schnittstelle IClientTransport implementieren und an die Start-Methode übergeben. So wird der webSockets-Transport auf UWP unterstützt. Here ist der ganze Code, den ich schreiben musste.

Verwandte Themen