Node.js 如何使用socket.io向其他客户端(用户)发送数据?

Node.js 如何使用socket.io向其他客户端(用户)发送数据?,node.js,mongodb,express,mongoose,socket.io,Node.js,Mongodb,Express,Mongoose,Socket.io,我正在向所有客户端发送数据,但它仅附加在发件人的邮件正文上。在这种情况下,实时数据只对发送方有效,但我需要对每个连接的用户有效 在阅读文档后,它说,广播可能是解决方案,但它不显示给发送者(这意味着OK),但也不显示给其他连接的接收器 Custom.js App.js 我想将数据附加到所有已连接的用户,包括发件人。如果您想将消息发送到所有可使用的已连接套接字 io.sockets.emit('msgResult', 'data'); 如果要将消息发送到除发送方之外的所有已连接的套接字,请使用 s

我正在向所有客户端发送数据,但它仅附加在发件人的邮件正文上。在这种情况下,实时数据只对发送方有效,但我需要对每个连接的用户有效

在阅读文档后,它说,广播可能是解决方案,但它不显示给发送者(这意味着OK),但也不显示给其他连接的接收器

Custom.js

App.js


我想将数据附加到所有已连接的用户,包括发件人。

如果您想将消息发送到所有可使用的已连接套接字

io.sockets.emit('msgResult', 'data');
如果要将消息发送到除发送方之外的所有已连接的套接字,请使用

socket.broadcast.emit('msgResult', 'data');
socket服务器的index.js应该具有 //webServerPort=localhost:3000

const server = http.createServer(app);
let constAppServer = server.listen(webServerPort);
let io = socketServer(constAppServer);
app.set('socket',io);
io.on('connection', function (socket) {
    console.log('connection opened');

    socket.on('disconnect', function(){
        console.log('user disconnected');
    });

    socket.on('udagent',function(msg){
        console.log('message: ' + msg);
    });
});
当您要将事件发送到前端时,这是event.js


我有一个api,通过创建和传递这个api,将我的管理通知广播给我手下的所有代理

const broadCastUpdates =(req,res)=> {
    const {message} = req.body
    let io = req.app.get('socket');
    io.broadcast.emit('broadCastToAgents', { 'data':message });
}

我终于找到了答案。这是一个简单的错误,需要很多时间

custom.js

App.js


我只是从ajax提交中插入我的msgResult。就这样。

不起作用了。顺便说一下,我编辑了几行代码。我希望它能有所帮助。在编写
socket.on('send',data=>console.log(data)
)时,您在客户端和服务器端都看到了
数据吗?是的。我在客户端和服务器端都看到了。但它只在发送方控制台显示。您的socket io客户端和服务器版本是什么?我使用了客户端2.0.3和服务器2.1.1,只替换了您的
socket.1('msgResult',data.msg);
with
io.sockets.emit('msgResult',data.msg)
而且它工作得非常好我理解你的解决方案。但这不是我想要的。我的消息通过其他路由文件提交,这是完全正确的,我可以通过app.Js文件使用套接字获取数据。但是为什么它只对发送者有效?它应该对所有连接的接收者有效。嘿,兄弟,你能告诉我如何才能在event.js部分的广播中设置它?这是不可能的,因为广播事件触发器将传递到所有连接的套接字,仅排除触发事件的人,即发送者
const server = http.createServer(app);
let constAppServer = server.listen(webServerPort);
let io = socketServer(constAppServer);
app.set('socket',io);
io.on('connection', function (socket) {
    console.log('connection opened');

    socket.on('disconnect', function(){
        console.log('user disconnected');
    });

    socket.on('udagent',function(msg){
        console.log('message: ' + msg);
    });
});
const testFunction =(req,res)=> {
    let io = req.app.get('socket');
    io.emit('dashboard_event', { "totalMin": data });
}
const broadCastUpdates =(req,res)=> {
    const {message} = req.body
    let io = req.app.get('socket');
    io.broadcast.emit('broadCastToAgents', { 'data':message });
}
var socket = io.connect("http://localhost:3000/");
$.ajax({
     url: 'sent',
     type: 'POST',
     data: {
      msg: 'Some message'
     },
     dataType: "json",
     success: function (data) {
      if (data.message) {
        socket.emit('send', {
         msg: data.msgResult
        });
      }
    }
});

socket.on('msgResult', result => {
$(".msgDiv").append(result);
});
const app = express();
const http = require("http").Server(app);
const io = require("socket.io")(http);

io.on('connection', (socket) => {
console.log('Socket.io connected...');
socket.on('send', (data) => {
socket.emit('msgResult', data.msg);
});
socket.on('disconnect', () => {
console.log("A socket Discounted ..");
});
});