Rumah > Artikel > pembangunan bahagian belakang > Analisis kes aplikasi WebSocket dan komunikasi masa nyata
Analisis kes aplikasi WebSocket dan komunikasi masa nyata
Dengan perkembangan Internet dan kemajuan teknologi, komunikasi masa nyata menjadi semakin penting dalam pelbagai aplikasi. Model respons permintaan berasaskan HTTP tradisional selalunya tidak dapat memenuhi keperluan komunikasi masa nyata, jadi WebSocket muncul sebagai protokol baharu. Protokol WebSocket adalah berdasarkan TCP dan membenarkan penubuhan sambungan berterusan antara pelanggan dan pelayan, mencapai komunikasi masa nyata dupleks penuh.
Artikel ini akan menganalisis kes aplikasi WebSocket melalui aplikasi bilik sembang ringkas dan memberikan contoh kod yang sepadan.
// 引入依赖 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>
Dalam kod di atas, socket.emit
digunakan untuk menghantar mesej kepada pelayan, dan socket.on
digunakan untuk menerima mesej daripada pelayan dan mengemas kini paparan halaman. socket.emit
用于发送消息给服务器,socket.on
用于接收服务器发来的消息,并更新页面显示。
node server.js
然后,在浏览器中打开http://localhost:3000
Masukkan direktori projek pada baris arahan dan jalankan arahan berikut untuk memulakan pelayan:
rrreee
Kemudian, buka http://localhost:3000 untuk memasuki aplikasi bilik sembang. Berbilang pengguna boleh menghantar mesej pada halaman web pada masa yang sama untuk mencapai komunikasi masa nyata.
Melalui kes di atas, kita dapat melihat kelebihan aplikasi WebSocket dalam komunikasi masa nyata. Berbanding dengan model respons permintaan HTTP tradisional, WebSocket boleh mewujudkan sambungan yang berterusan dan mencapai komunikasi dua hala masa nyata, yang meningkatkan pengalaman pengguna.
Atas ialah kandungan terperinci Analisis kes aplikasi WebSocket dan komunikasi masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!