Startunterstützung für eine Websocket abfrage

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Luft-Post.

    Startunterstützung für eine Websocket abfrage

    Guten Morgen,
    ich brauche mal ein wenig Startunterstützung von euch, da ich noch in diesen Bereich keine Erfahrung habe.

    Mein Vorhaben:
    Eine Hardware über die beschriebene WebSocket Schnittstelle anfragen/abfragen z.B. GPS Daten, Empfangs stärke,... und die Daten in Richtung Excel schieben (vielleicht über CSV-Datei oder direkte abfrage aus Excel über VBA?).

    Die Beschriebene WebSocket Schnittstelle:
    - Aufruf über wss://ip.addr es werden nur sichere Verbindungen unterstützt
    - Der Client brauch zur Authentifizierung ein Zertifikat (*.key und *.crt Datei vorhanden)
    - Standard-http-Basis Authentifizierung
    - Inhalt ist ein Texttyp (Opcode0x01) und JSON-Codiert

    Mein Problem/Frage:
    - wonach muss ich im Netz bezüglich Authentifizierung durch ein Zertifikat für Informationen suchen? Websocket mit TLS?
    - gibt es eine fertige Libraries die ich benutzen kann? Habe z.B. zaphoyd.com/websocketpp gefunden, aber eine Ansatz für meine Authentifizierung
    - Wie würdet Ihr so eine Abfrage machen?

    Vielen Dank für eure Ideen und Unterstützung

    Gruß Matthias
    Seit .NET 4.5 gibt es die ClientWebSocket Klasse im Namespace System.Net.WebSockets hast du damit schonmal rumgespielt?
    Post-AGB:
    §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
    §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
    Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
    §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
    Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen
    Dann würde ich sagen Spiel da mal mit rum.

    Ich gestehe, ich habe damit selbst noch nicht hantiert, doch die ClientWebSocketOptions (Und darin die Möglichkeit Zertifikate zu hinterlegen, als auch Credentials) deuten darauf hin, dasss Dinge wie TLS und Authentifizierung vielleicht sogar schon komplett abgehandelt sind. Ein Blick in die ReferenceSource zeigt auch, dass das ganze über den "HTTP-Stack" von .NET abläuft.

    Theoretisch erfüllt diese Klasse also alle deine Anforderungen.

    Ansonsten schau mal hier rein:
    github.com/sta/websocket-sharp
    Post-AGB:
    §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
    §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
    Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
    §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
    Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen
    mmh
    irgendwie komme ich nicht weiter

    VB.NET-Quellcode

    1. Async Sub Verbindung()
    2. Dim WebSocket As ClientWebSocket
    3. Try
    4. WebSocket = New ClientWebSocket
    5. WebSocket.Options.ClientCertificates.Add(New X509Certificate2("C:\x.crt"))
    6. Await WebSocket.ConnectAsync(New Uri("wss://172.24.5.254"), CancellationToken.None)
    7. Catch ex As Exception
    8. Console.WriteLine(ex.Message)
    9. Finally If WebSocket IsNot Nothing Then
    10. WebSocket.Dispose()
    11. End If
    12. End Try
    13. End Sub

    kommt immer die Meldung das er keine Verbindung herstellen kann
    Mach mal bitte aus dem ex.Message einfach nur ex.
    Oder noch besser, step das einfach durch, und schau dir die konkrete Exception und evtl. InnerExceptions an.
    Post-AGB:
    §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
    §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
    Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
    §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
    Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen
    Guter Tipp :)

    es kommt der Abbruch durch:
    System.Net.WebException: Die Anfrage wurde abgebrochen: Es konnte kein geschützter SSL/TLS-Kanal erstellt werden
    einfach nur das Zertifikat laden scheint nicht zu funktionieren :(

    Beim Aufruf durch "ws://172.24.5.254"
    System.Net.WebSockets.WebSocketException (0x80004005): Die Verbindung mit dem Remoteserver kann nicht hergestellt werden. ---> System.Net.WebException: Die zugrunde liegende Verbindung wurde geschlossen: Für den geschützten SSL/TLS-Kanal konnte keine Vertrauensstellung hergestellt werden.. ---> System.Security.Authentication.AuthenticationException: Das Remotezertifikat ist laut Validierungsverfahren ungültig.

    Laut Doku soll der Aufruf aber durch wss:// erfolgen...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Luft-Post“ ()

    Hmm... durchleuchte doch mal den Alert, vielleicht findest da was. Leider kann ich dir ohne Testaufbau oder dergleich nicht sonderlich viel helfen.
    Post-AGB:
    §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
    §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
    Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
    §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
    Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen