Heim >Backend-Entwicklung >Golang >Warum gibt meine Go WebSocket-App auf Heroku beim Schließen der Verbindung einen H15-Fehler aus?

Warum gibt meine Go WebSocket-App auf Heroku beim Schließen der Verbindung einen H15-Fehler aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-12 10:57:14648Durchsuche

Why Does My Go WebSocket App on Heroku Throw an H15 Error on Connection Closure?

H15-Fehler bei Heroku-Web-Socket-Beendigung

Bei der Bereitstellung eines Go-Web-Socket-Dienstes auf Heroku stoßen Benutzer häufig auf den frustrierenden „H15-Fehler“. während der Beendigung der Socket-Verbindung. Dieser Fehler deutet darauf hin, dass die Anfrage übermäßig viel Zeit in Anspruch genommen hat, obwohl der Client den Server alle 20 Sekunden anpingt, um die Verbindung aufrechtzuerhalten.

Die zugrunde liegende Ursache dieses Problems liegt in der „falsch positiven“ Natur von Heroku Router-Engine. Hier ist eine detaillierte Erklärung:

Verbindungsaufbau und Heartbeats

  1. Beim Aufbau einer WebSocket-Verbindung nehmen Client und Server normalerweise eine HTTP-Abfrageverbindung auf, bevor sie zu wechseln WebSocket.
  2. Nach dem Übergang zu WebSocket sendet der Client regelmäßige Heartbeats, um den Heroku-Router daran zu hindern Beenden der Anfrage.
  3. Solange diese Heartbeats empfangen werden, bleibt der Heroku-Router-Timer zurückgesetzt.

Verbindungsabbruch und H15-Fehler

Wenn der Client jedoch die Verbindung schließt, erkennt der Router die Beendigung der Anfrage und geht davon aus, dass er für die Dauer von der Initiierung der Anfrage bis zur Schließung inaktiv war. Dies führt dazu, dass der Fehler „Dienst = Bei der Beendigung handelt es sich in erster Linie um ein falsch positives Ergebnis, das dadurch verursacht wird, dass das System nicht zwischen einer vom Kunden initiierten Schließung und einer längeren Inaktivität unterscheiden kann. Es tritt häufig auf, wenn Benutzer ihre Anwendung verlassen oder schließen, was zu einer harmlosen, aber ärgerlichen Fehlermeldung führt.

Das obige ist der detaillierte Inhalt vonWarum gibt meine Go WebSocket-App auf Heroku beim Schließen der Verbindung einen H15-Fehler aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn