2017-10-11 1 views
2

Ich muss auf einen Websocket-Server zugreifen, der mit SignalR Hub von meiner Java-Desktop-Anwendung ausgeführt wird.Wie verbinde ich einen Java-Client mit SignalR Hub, nur mit Websockets?

  • Es gibt a library, die genau das tut, aber es ist tot. Es gibt viele Probleme und Pull-Anfragen und es wurde seit 2015 nicht aktualisiert.
  • Ich fand auch another library aber, soweit ich das beurteilen kann, ist es nur für Android-Projekte.
  • Ich fand a SO question, die besagt, dass es möglich ist, direkt mit dem SignalR-Server (Standard-Websocket-Aufrufe) mit einigen Problemumgehungen zu sprechen, aber der angegebene Link ist tot.
  • Wenn ich versuchte, den Server direkt mit Websocket zuzugreifen, schlägt der HTTP-Handshake fehl (ich bekomme HTTP 200 statt 101).

    Kann jemand helfen?

    Antwort

    1

    Sie können keine Verbindung zu SignalR 2.x mit nur bare webSocket herstellen. Der Grund dafür ist, dass das Starten der Verbindung einige HTTP-Anforderungen erfordert, die in einer bestimmten Reihenfolge gesendet werden müssen und bestimmte Inhalte enthalten. Ich habe das SignalR-Protokoll in einer blog post beschrieben. Nachdem Sie diesen Beitrag gelesen haben, werden Sie verstehen, warum ein dedizierter Client für SignalR 2.x existiert hat.

    Nachdem gesagt, dass - die neue Version von SignalR for ASP.NET Core nicht mehr dieses Protokoll und Anforderungen hat und es möglich ist, mit dem Server mit nur nackten Websockets zu verbinden. Ich habe vor einiger Zeit eine Demo erstellt, die zeigt, wie man das macht - Details finden Sie unter here. Ich auch started working auf ein Beispiel für die Hubs-Ebene, aber muss es zu beenden.

    Verwandte Themen