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'事件。当服务器接收到来自客户端的消息时,将广播消息给所有客户端。