it-swarm.com.de

Gibt es eine Möglichkeit, etwa alle x Sekunden eine Antwort auf eine einzelne http-Anforderung zurückzugeben?

Ich frage mich, ob es möglich ist, jede Sekunde eine Antwort auf eine einzelne http-Anfrage zu senden. Wie zum Beispiel, wenn der Client eine http-Anfrage sendet, sendet der Server jede Sekunde ein Leerzeichen. Dies könnte niemals enden oder mit einem Limit, zum Beispiel einer Minute.

Ich denke, das Wort "Antwort" ist in diesem Zusammenhang irreführend, da ich nicht unbedingt eine http-Antwort meine. Die gesamte http-Antwort kann aus Leerzeichen bestehen. Dies würde eine einzelne http-Antwort auf eine einzelne http-Anforderung bedeuten, mit der Ausnahme, dass sie eine Minute lang ist.

Ich habe Chunked Encoding ausprobiert, glaube aber nicht, dass es funktioniert, oder zumindest ist meine Implementierung falsch.

4
luis

Sie können WebSockets verwenden, um serverseitiges Pushing auf den Client durchzuführen. Mit ihnen können Sie eine Verbindung zu einem Server herstellen und Antworten vom Server empfangen, ohne weitere Anforderungen vom Client ausgeben zu müssen.

Die Seite websocketstest zeigt eine WebSocket-Verbindung an, die in Ihrem Browser funktioniert (sofern WebSockets unterstützt wird). Die Serverzeit wird jede Sekunde auf den Client übertragen.

Die JavaScript-Bibliothek socket.io ist eine beliebte Methode, um ein WebSocket auf der Clientseite zu implementieren, mit Fallbacks für ältere Browser und Unterstützung für mehrere Sockets .

Sie müssen auch einen Websocket-Server erstellen, um auf Verbindungen zu warten und Antworten zu liefern. Es gibt Bibliotheken für PHP, Java , Ruby , node.js , Python und andere. Es gibt ein Tutorial hier , das Sie durch die clientseitigen und serverseitigen Einstellungen führt.

Beachten Sie, dass nicht alle Browser standardmäßig WebSockets unterstützen, obwohl die Bibliothek socket.io versucht, dieses Problem zu umgehen [ details ].

5
Nick