WebSockets
Web Sockets est une nouvelle génération de technologie de communication bidirectionnelle pour les applications Web, fonctionnant sur un seul socket, exposé dans les navigateurs compatibles HTML5 via une interface JavaScript.
Une fois que vous avez obtenu la connexion Web Socket sur le serveur Web, vous pouvez envoyer des données du navigateur au serveur en appelant la méthode send() et recevoir des données du serveur au navigateur via le gestionnaire d'événements onmessage.
Ce qui suit est l'API pour créer un nouvel objet WebSocket.
Le premier paramètre url est utilisé pour spécifier l'URL à laquelle se connecter. Le deuxième attribut - port est facultatif et, s'il est fourni, spécifie un sous-protocole que le serveur doit prendre en charge pour une connexion réussie.
Propriétés WebSocket
Voici les propriétés de l'objet WebSocket. Supposons que nous ayons créé l'objet Socket ci-dessus :
属性 | 描述 |
---|---|
Socket.readyState |
只读属性readyState表示连接的状态。有以下取值:
|
Socket.bufferedAmount |
只读属性bufferedAmount表示已经使用 send() 方法排队的 URF-8 文本字节数。 |
事件 | 事件处理程序 | 描述 |
---|---|---|
open | Socket.onopen | 建立 socket 连接时触发这个事件。 |
message | Socket.onmessage | 客户端从服务器接收数据时触发。 |
error | Socket.onerror | 连接发生错误时触发。 |
close | Socket.onclose | 连接被关闭时触发。 |
方法 | 描述 |
---|---|
Socket.send() |
send(data) 方法使用连接传输数据。 |
Socket.close() |
close() 方法用于终止任何现有连接。 |
Événements Push du serveur
Les applications Web traditionnelles génèrent des événements qui sont envoyés côté serveur Web. Par exemple, cliquer sur un lien demandera une nouvelle page au serveur.
Ce type de temps entre le navigateur Web et le serveur Web peut être appelé un événement côté client.
Avec l'avènement de HTML5, WHATWG Web Applications 1.0 a introduit un flux d'événements du serveur Web vers le navigateur Web appelé Server Push Events (SSE). Utilisez SSE pour transmettre en continu les événements DOM au navigateur de l'utilisateur.
Cette méthode de streaming d'événements ouvrira une connexion persistante au serveur et enverra des données au client lorsque de nouveaux messages sont disponibles, éliminant ainsi le besoin d'une interrogation continue.
Application Web SSE
Pour utiliser les événements push du serveur dans une application Web, nous devons ajouter un élément
Cette URL pointera vers un script PHP, PERL ou tout autre script Python qui envoie en continu des données d'événement. Voici un exemple simple d'une application Web qui attend l'heure du serveur.
Script côté serveur SSE
Le script côté serveur doit envoyer un en-tête Content-type spécifiant le type comme texte/flux d'événements, comme indiqué ci-dessous :
Gestion des événements push du serveur
Modifions notre application Web pour gérer les événements push du serveur. Voici le dernier exemple :
在测试服务器推送事件之前,建议你确保你的 Web 浏览器支持这一概念。