2016-12-14 3 views
0

Ich implementiere einen WebSocket node.js-Server, der Browser-Websockets als Clients hat.Ping/Pong-Nachrichten im WebSocket-Protokoll

Ich möchte einen Ping/Pong-Mechanismus implementieren, bei dem der Server alle 5 Sekunden einen Ping-Frame an den Client sendet.

Also meine Fragen sind:

  1. welche Daten Nutzlast sollte ich im Ping Rahmen verwenden?

  2. In welchem ​​Intervall werden die Ping-Frames gesendet?

  3. kann der Browser eine Ping-Anfrage an meinen Server initiieren, also müsste ich eine Antwort auf ein Ping-Ereignis implementieren?

Antwort

0
  1. verwenden, was Nutzlast Sie wollen. WebSocket ist nur ein Transport, Sie entscheiden, welche Daten es transportiert. Per der WebSocket-Spezifikation:

    Ein Ping Rahmen MAY umfassen "Anwendungsdaten".

    Das bedeutet, dass es überhaupt keine Daten senden muss.

  2. Verwenden Sie das Intervall, das für die Kommunikation, die Sie mit WebSockets implementieren, sinnvoll ist.

  3. WebSockets sind bidirektional, also kann ein Browser einen Ping-Frame an Ihren Server senden. Pro Spezifikation:

    Nach Empfang eines Ping-Rahmens MUSS ein Endpunkt einen Pong-Rahmen als Antwort senden, es sei denn, es wurde bereits ein Close-Frame empfangen. Es sollte so schnell wie möglich mit Pong-Rahmen reagieren. Pong Frames werden in Abschnitt 5.5.3 besprochen.

    Ein Endpunkt kann einen Ping-Rahmen jederzeit senden, nachdem die Verbindung hergestellt wurde und bevor die Verbindung geschlossen wird.

    Das bedeutet, dass jede Partei einen Ping jederzeit senden kann.

Verwandte Themen