


Eine kurze Analyse der WebSocket- und Server-Push-Events_html5-Tutorialfähigkeiten von HTML5
WebSockets
Web Sockets ist eine neue Generation bidirektionaler Kommunikationstechnologie für Webanwendungen, die auf einem einzigen Socket ausgeführt wird und in HTML5-kompatiblen Browsern über eine JavaScript-Schnittstelle verfügbar gemacht wird.
Sobald Sie die Web-Socket-Verbindung auf dem Webserver erhalten haben, können Sie Daten vom Browser an den Server senden, indem Sie die send()-Methode aufrufen, und Daten vom Server über den onmessage-Ereignishandler an den Browser empfangen.
Das Folgende ist die API zum Erstellen eines neuen WebSocket-Objekts.
- varSocket = new WebSocket(url, [protocal] );
WebSocket-Eigenschaften
Im Folgenden sind die Eigenschaften des WebSocket-Objekts aufgeführt. Angenommen, wir haben das obige Socket-Objekt erstellt: 只读属性readyState表示连接的状态。有以下取值: 0 表示连接尚未建立。 1 表示连接已建立,可以进行通信。 2 表示连接正在进行关闭握手。 3 表示连接已经关闭或者连接不能打开。 只读属性bufferedAmount表示已经使用 send() 方法排队的 URF-8 文本字节数。 send(data) 方法使用连接传输数据。 close() 方法用于终止任何现有连接。 Server-Push-Ereignisse Diese Art von Zeit vom Webbrowser bis zum Webserver kann als clientseitiges Ereignis bezeichnet werden. Mit der Einführung von HTML5 führte WHATWG Web Applications 1.0 einen Ereignisstrom vom Webserver zum Webbrowser namens Server Push Events (SSE) ein. Verwenden Sie SSE, um DOM-Ereignisse kontinuierlich an den Browser des Benutzers zu übertragen. Diese Ereignis-Streaming-Methode stellt eine dauerhafte Verbindung zum Server her und sendet Daten an den Client, wenn neue Nachrichten verfügbar sind, sodass keine kontinuierliche Abfrage erforderlich ist. SSE-Webanwendung Diese URL verweist auf ein PHP-, PERL- oder ein beliebiges Python-Skript, das kontinuierlich Ereignisdaten sendet. Hier ist ein einfaches Beispiel einer Webanwendung, die die Serverzeit erwartet. Serverseitiges SSE-Skript
Attribut
Beschreibung
Socket.readyState
Schreibgeschütztes Attribut
readyState stellt den Status der Verbindung dar. Es hat die folgenden Werte:
属性
描述
Socket.readyState
Socket.bufferedAmount
0 bedeutet, dass die Verbindung noch nicht hergestellt wurde.
事件
事件处理程序
描述
open
Socket.onopen
建立 socket 连接时触发这个事件。
message
Socket.onmessage
客户端从服务器接收数据时触发。
error
Socket.onerror
连接发生错误时触发。
close
Socket.onclose
连接被关闭时触发。
2 zeigt an, dass die Verbindung gerade einen schließenden Handshake durchläuft.
方法
描述
Socket.send()
Socket.close()
WebSocket-Ereignisse Die folgenden Ereignisse beziehen sich auf das WebSocket-Objekt. Angenommen, wir haben das obige Socket-Objekt erstellt:
WebSocket-Methoden Die folgenden Methoden beziehen sich auf das WebSocket-Objekt. Angenommen, wir haben das obige Socket-Objekt erstellt:
Socket.bufferedAmount
Schreibgeschütztes AttributbufferedAmountStellt die Anzahl der URF-8-Textbytes dar, die mit der send()-Methode in die Warteschlange gestellt wurden.
Methode
Beschreibung
Socket.send()
Die send(data)-Methode verwendet eine Verbindung zum Übertragen von Daten.
Socket.close()
Die Methode close() wird verwendet, um eine bestehende Verbindung zu beenden.
Herkömmliche Webanwendungen generieren Ereignisse, die an die Webserverseite gesendet werden. Wenn Sie beispielsweise auf einen Link klicken, wird eine neue Seite vom Server angefordert.
Um Server-Push-Ereignisse in einer Webanwendung zu verwenden, müssen wir dem Dokument ein
Das serverseitige Skript sollte einen Content-Type-Header senden, der den Typ als Text/Ereignisstream angibt, wie unten gezeigt:
Nach dem Festlegen des Inhaltstyps sendet das serverseitige Skript ein Event:-Tag, gefolgt vom Ereignisnamen. Im folgenden Beispiel wird eine mit einer neuen Zeile abgeschlossene Serverzeit als Ereignisname gesendet.
Der letzte Schritt besteht darin, die Ereignisdaten mithilfe des Data:-Tags zu senden, gefolgt vom ganzzahligen Zeichenfolgenwert, der mit einer neuen Zeile abgeschlossen wird, etwa so:
print " Daten: $timen";
Das Folgende ist die vollständige ticker.cgi in Perl geschrieben:
#!/usr/bin /perl
print „Content-Type: text/event-streamnn“;
while(true){
print „Event: server-timen“;
$time = localtime();
print " Daten: $timen";
sleep(5);
Verarbeitung von Server-Push-Ereignissen
Lassen Sie uns unsere Webanwendung so ändern, dass sie Server-Push-Ereignisse verarbeitet. Hier ist das letzte Beispiel:
- >
- <html>
- <Kopf>
- <script type="text/ Javascript">
- document.getElementsByTagName("eventsource")[0].
- addEventListener("server-time", eventHandler, false);
- function eventHandler(event)
- {
- // vom Server gesendete Alarmzeit
- document.querySelector('#ticker').innerHTML = event.data;
- }
- Skript>
- Kopf>
- <Körper>
- <div id="sse" >
- <eventsource src="/cgi -bin/ticker.cgi" />
- div>
- <div id="ticker" Name="Ticker">
- [ZEIT]
- div>
- Körper>
- html>
在测试服务器推送事件之前,建议你确保你的 Web 浏览器支持这一概念.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.
