Analyse de cas d'application de WebSocket et communication en temps réel
Avec le développement d'Internet et les progrès de la technologie, la communication en temps réel devient de plus en plus importante dans diverses applications. Le modèle requête-réponse traditionnel basé sur HTTP ne peut souvent pas répondre aux besoins de communication en temps réel, c'est pourquoi WebSocket est apparu comme un nouveau protocole. Le protocole WebSocket est basé sur TCP et permet d'établir une connexion persistante entre le client et le serveur, réalisant une communication en temps réel en duplex intégral.
Cet article analysera les cas d'application WebSocket via une simple application de salle de discussion et fournira des exemples de code correspondants.
// 引入依赖 const app = require('http').createServer(); const io = require('socket.io')(app); // 监听指定端口 app.listen(3000, () => { console.log('Server started on port 3000'); }); // 处理连接事件 io.on('connection', (socket) => { console.log(`User connected: ${socket.id}`); // 处理接收到的消息 socket.on('message', (message) => { console.log(`Received message: ${message}`); // 广播消息给所有连接的客户端 io.emit('message', message); }); // 处理断开连接事件 socket.on('disconnect', () => { console.log(`User disconnected: ${socket.id}`); }); });
<!DOCTYPE html> <html> <head> <script src="/socket.io/socket.io.js"></script> <script> // 连接到服务器 const socket = io('http://localhost:3000'); // 处理接收到的消息 socket.on('message', (message) => { console.log(`Received message: ${message}`); // 更新页面显示 document.getElementById('messages').innerHTML += `<li>${message}</li>`; }); // 发送消息 function sendMessage() { const input = document.getElementById('input'); const message = input.value; // 发送消息给服务器 socket.emit('message', message); input.value = ''; } </script> </head> <body> <ul id="messages"></ul> <input type="text" id="input"> <button onclick="sendMessage()">发送</button> </body> </html>
Dans le code ci-dessus, socket.emit
est utilisé pour envoyer des messages au serveur, et socket.on
est utilisé pour recevoir des messages du serveur et mettre à jour le affichage des pages. socket.emit
用于发送消息给服务器,socket.on
用于接收服务器发来的消息,并更新页面显示。
node server.js
然后,在浏览器中打开http://localhost:3000
Entrez le répertoire du projet sur la ligne de commande et exécutez la commande suivante pour démarrer le serveur :
rrreee
Ensuite, ouvrez http://localhost:3000 pour accéder à l'application de salon de discussion. Plusieurs utilisateurs peuvent envoyer des messages sur la page Web en même temps pour établir une communication en temps réel.
A travers les cas ci-dessus, nous pouvons constater les avantages applicatifs de WebSocket en communication en temps réel. Par rapport au modèle de requête-réponse HTTP traditionnel, WebSocket peut établir une connexion persistante et établir une communication bidirectionnelle en temps réel, ce qui améliore considérablement l'expérience utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!