socket.io实现私聊
时间: 2023-05-31 12:03:44 浏览: 60
Socket.io可以通过在服务器端和客户端之间传递自定义事件来实现私聊功能。下面是一个简单的示例实现:
服务器端:
```javascript
const io = require('socket.io')(server);
io.on('connection', (socket) => {
// 加入聊天室事件
socket.on('join', (room) => {
socket.join(room); // 加入指定房间
});
// 私聊事件
socket.on('private message', ({ message, from, to }) => {
io.to(to).emit('private message', { message, from }); // 将私聊消息发送给指定用户
});
});
```
客户端:
```javascript
const socket = io();
// 加入聊天室
socket.emit('join', 'room1');
// 发送私聊消息
socket.emit('private message', { message: 'Hello!', from: 'User1', to: 'User2' });
// 监听私聊消息
socket.on('private message', ({ message, from }) => {
console.log(`Received private message from ${from}: ${message}`);
});
```
在上面的例子中,当一个用户加入聊天室时,服务器会将其加入一个指定的房间。当一个用户想要发送私聊消息时,它会向服务器发送一个自定义事件“private message”,并传递一些必要信息,例如消息正文、发送者和接收者。服务器会将消息发送给指定的接收者所在的房间,接收者会在客户端上通过监听“private message”事件来接收消息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)