WebSocket是一个HTML5协议,它提供了在单个TCP连接上进行全双工通信的功能。在Web开发中,我们可以使用WebSocket实现实时聊天功能。
在客户端JavaScript代码中,使用WebSocket对象建立与服务器的连接。可以使用以下代码:
javascript const socket = new WebSocket('ws://localhost:8080');
使用WebSocket对象的send()方法发送消息,使用onmessage事件处理程序接收消息。可以使用以下代码:
javascript // 发送消息 socket.send('Hello, server!'); // 接收消息 socket.onmessage = function(event) { console.log('Received message: ' + event.data); };
使用onclose事件处理程序处理连接关闭。可以使用以下代码:
javascript socket.onclose = function(event) { console.log('Connection closed with code: ' + event.code); };
使用onerror事件处理程序处理连接错误。可以使用以下代码:
javascript socket.onerror = function(event) { console.log('Error: ' + event.message); };
服务器端代码可以使用Node.js中的ws模块实现。以下是一个简单的WebSocket服务器实现:
javascript const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); wss.on('connection', function connection(ws) { console.log('Client connected.'); ws.on('message', function incoming(message) { console.log('Received message: %s', message); // 广播消息给所有客户端 wss.clients.forEach(function each(client) { if (client !== ws && client.readyState === WebSocket.OPEN) { client.send(message); } }); }); ws.on('close', function close() { console.log('Client disconnected.'); }); });
以上代码中,我们使用WebSocket.Server对象创建一个WebSocket服务器。当客户端连接到服务器时,将触发'connection'事件。当服务器接收到来自客户端的消息时,将广播消息给所有客户端。