7
votes

Le client SignalR .NET ne prend pas en charge les webockets sur Windows 7

J'ai écrit un petit serveur echo-serveur (.NET 4.5), client de console (.NET 4.5) et client Web à l'aide de SignalR et d'exemple présenté ici .

Server est hébergé dans IIS8 / Win8. Ensuite, j'ai dirigé les deux clients sur Win7. Et je vois que ce client Web à Chrome utilise WebSockets, tandis que Console App Client utilise des serveursEvents. Si j'exécute le client de la console sur Win8, alors Webockets Transport est utilisé.

est-il vrai que le client SignalR .NET utilisera des webockets uniquement sur Win8 et supérieur?


0 commentaires

3 Réponses :


11
votes

C'est correct: le client .NET utilise des webockets uniquement sur Win8 et plus haut.


2 commentaires

Merci gustavo. J'ai débogué le client SignalR sous Windows 7 et voir que la CTTOR CLINKWebSebocket jette une exception NOTSupportedException. Et selon Les plates-formes prise en charge MSDN sont Windows 8, Windows Server 2012.


La réponse que Peter a donné pourrait être une solution pour contourner cette limitation.



5
votes

Pour un projet, je devais utiliser de vrais connexions Websocket en combinaison avec SignalR.

pour les versions Windows qui ne prennent pas en charge Webockets, vous pouvez utiliser Websocket4net package Nuget et la mise en œuvre suivante de SIGNALR ICLientTRANSPORT. P>

var hubConnection = new HubConnection("https://url/to/the/hub");
var clientTransport = WebSocketTransportFactory.Create();
await hubConnection.Start(clientTransport);


2 commentaires

Comment vous êtes-vous allé sur l'ajout de la prise en charge de Websocket pour le côté serveur sur .NET 4.0?


Pourrait-il s'appliquer à microsoft.aspnetcore.signalr.client aussi?



0
votes

Ceci est une ancienne question, mais si vous convertissez votre projet pour être une application de base .Net auto contenu, vous pouvez utiliser SignalR avec WebSockets sur Windows 7.


0 commentaires