socke.io.emit 方法
封面图
•
2025-11-26
•
nodejs
230
0
0
0
`socket.io.emit` 是 `Socket.IO` 库中用于从服务器或客户端向客户端发送事件的方法。它用于在客户端和服务器之间进行实时通信。 --- ## ✅ 基本用法 ### 1. **从服务器向客户端发送事件(Server → Client)** ```javascript // 服务器端代码 const io = require('socket.io')(server); io.on('connection', (socket) => { console.log('A client connected'); // 向所有连接的客户端发送事件 socket.emit('message', 'Hello from server!'); // 向特定客户端发送事件(通过 socket.id) socket.on('some-event', (data) => { console.log('Received:', data); }); }); ``` ### 2. **从客户端向服务器发送事件(Client → Server)** ```javascript // 客户端代码 const socket = io(); // 向服务器发送事件 socket.emit('message', 'Hello from client!'); // 接收来自服务器的事件 socket.on('message', (data) => { console.log('Received from server:', data); }); ``` --- ## 🔍 参数说明 `socket.emit(eventName, [data], [callback])` | 参数名 | 类型 | 说明 | |------------|------------|----------------------------------------------------------------------| | `eventName` | `string` | 要发送的事件名称,比如 `'message'`, `'user-connected'` 等。 | | `data` | `any` | 可选参数,可以是字符串、对象、数字等,用于传递数据。 | | `callback` | `function` | 可选回调函数,用于接收服务器返回的数据(仅在客户端使用)。 | --- ## 🔄 示例:带回调的 `emit` ### 客户端发送请求,服务器响应: ```javascript // 客户端 socket.emit('request', { user: 'Alice' }, (response) => { console.log('Server response:', response); }); ``` ```javascript // 服务器 socket.on('request', (data, callback) => { console.log('Received request:', data); callback({ status: 'success', message: 'Request processed' }); }); ``` --- ## ⚠️ 注意事项 - `emit` 是**单向**的,不会等待响应。 - 如果你需要**双向通信**(即客户端发消息,服务器回复),请使用带有回调的 `emit`。 - `socket.io` 支持广播(`io.emit()` 或 `socket.broadcast.emit()`)来向多个客户端发送消息。 --- ## ✅ 广播示例(Server → All Clients) ```javascript // 向所有连接的客户端广播消息 io.emit('broadcast-message', 'This is a broadcast message'); ``` ```javascript // 向除当前客户端外的所有客户端广播 socket.broadcast.emit('message', 'You have a new message!'); ``` --- 如果你有具体的使用场景(比如聊天室、实时通知等),我可以帮你写出更详细的代码示例 😊
上一篇:
$.ajax()方法详解
下一篇:
js获取客户端浏览器信息
标题录入,一次不能超过6条
留言
评论