上面的答案中,不使用socket.io,只用websocket如何实现
时间: 2024-05-12 10:19:09 浏览: 16
使用WebSocket实现实时通信需要在服务端和客户端分别实现WebSocket协议的连接和通信。以下是一个简单的示例:
服务端:
```
const http = require('http');
const WebSocket = require('ws');
const server = http.createServer();
const wss = new WebSocket.Server({ server });
wss.on('connection', (ws) => {
console.log('Client connected');
ws.on('message', (message) => {
console.log(`Received message => ${message}`);
ws.send(`You sent => ${message}`);
});
ws.on('close', () => {
console.log('Client disconnected');
});
});
server.listen(8080, () => {
console.log('Server started on port 8080');
});
```
客户端:
```
const WebSocket = require('ws');
const ws = new WebSocket('ws://localhost:8080');
ws.on('open', () => {
console.log('Connected to server');
ws.send('Hello server!');
});
ws.on('message', (message) => {
console.log(`Received message => ${message}`);
});
ws.on('close', () => {
console.log('Disconnected from server');
});
```
在服务端,我们使用`ws`模块创建一个WebSocket服务器,并监听`connection`事件以便在客户端连接时处理通信。在客户端,我们使用`ws`模块创建一个WebSocket客户端,并在连接建立时发送一条消息,然后监听`message`事件以接收服务器发送的消息。
需要注意的是,WebSocket是一个底层协议,需要在应用层实现消息的解析和处理。在实际应用中,我们可以使用类似JSON格式的消息协议来方便地交换数据。