node.js - 套接字仅发送给一个用户
问题描述
我一直在寻找答案,但其中大多数我无法完全连接到我的代码,所以我希望能得到一些帮助。
我想为特定用户发送消息,例如 2 个人之间的聊天。
例如,如果我选择 John,我怎么能只给他发送一条消息?我在这方面遇到了很多麻烦
应用程序.js
io.on('connection', function (socket) {
socket.on('chat', function (data) {
console.log(data);
//Specific user
//socket.broadcast.to(socketid).emit('message', 'Hello');
});
});
我有一个 mongodb 数据库,那么如何指定具有选择用户的用户 ID 的 socketid?
解决方案
以下代码可用于向特定客户端发送消息。需要注意的是,每个连接的客户端都有一个唯一的套接字 id。将该 id 存储在一个数组中。您可以使用该 ID 呼叫任何用户。
var id=[];
io.on('connection', function (socket) {
socket.on('chat', function (data) {
console.log(data);
id.push(${socket.id});
});
});
//to send to specific user
io.to(socket#id).emit('hey!')
推荐阅读
- python - 错误:模块 'django.db.models' 没有属性 'SubfieldBase'
- python - 方法 np_utils.to_categorical 给我一个错误
- javascript - 当变量名在 JavaScript 中包含引号时,如何对数组进行排序?
- android - Firebase 电话身份验证 (Flutter) 在某些 iOS 设备中不起作用
- python - 为什么当我在一个程序中使用两个函数时只有一个有效
- python - 使用 Python3 以秒为单位显示年龄
- reactjs - 使用 React.js 和 Typescript 时模块没有导出成员问题
- java - 无法使用 HtmlUnit 2.35.0 登录网站
- python - 虽然我的以下尝试/除代码不起作用?它没有捕捉到 HTTPError
- css - 我想让博主 H2,H3,H4 背景限于文字大小