发送公共消息,包括发送方 Socket.io

Posted

技术标签:

【中文标题】发送公共消息,包括发送方 Socket.io【英文标题】:Send public message including sender Socket.io 【发布时间】:2020-11-02 18:28:51 【问题描述】:

我从socket.io 开始,我可以发送私人消息,但我如何向所有人发送消息, 在以下代码中(用于测试目的),第一个用户每次连接时都会收到一条私人消息,我如何将所有消息广播给包括发送者在内的所有客户端?

这是客户

var socket = io('http://localhost:3000');
socket.emit('user_join',  username:'username');
socket.on('private',function(data)
    alert(data);
);
socket.on('message',function(data)
    console.log(data);
);

这是服务器

var connectedUsers = []

io.on('connection', (socket) => 
  console.log('a user connected');
  socket.on('user_join', function(msg)
    connectedUsers[msg.username] = socket;
    connectedUsers['aaa'].emit('private','private message');
    socket.emit('message','public message');
  );
  console.log(connectedUsers.keys());
  socket.on('disconnect', () => 
    console.log('user disconnected');
  );
);

【问题讨论】:

尝试在 io 上使用广播。请点击此链接tutorialspoint.com/socket.io/…。 【参考方案1】:

文档很好https://socket.io/docs/emit-cheatsheet/

有很多变化,但我认为您正在寻找:

  io.emit('an event sent to all connected clients');

【讨论】:

以上是关于发送公共消息,包括发送方 Socket.io的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ事务和Confirm发送方消息确认

RabbiteMq 特性-发送方确认和消费放确认

查询 - 向用户发送公共和私人消息

RabbitMQ事务和Confirm发送方消息确认——深入解读

c++new出来的消息包socket发送出去过后,要在发送方释放吗

RabbitMQ