这是我的app.js文件

io.on('connection', function(socket){

socket.on('ujwal', function (data) {
    socket.emit('news', function(){
        console.log('testing');
    });
});

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


在ujwal事件中,我正在向客户端发送另一个事件
这是我的index.html我也包含了套接字库

var socket = io('http://localhost:3000');
    $('#test').click(function(){

        var as = "object";
        socket.emit('ujwal',as);


    });

    socket.on('news', function (a) {
        alert('receiving msgs');
    });


现在,每当用户单击获取的测试ID但谁没有单击却没有收到前端的对象时,我就会打开两个窗口。为什么代码意味着每当您获得名称事件ujwal时,请触发新闻A和B连接到服务器A,然后单击测试ujwal被触发并由服务器检查,然后再次发送新闻,现在所有连接的用户都应看到警报?

这就是我所知道的,因此请使其正常工作,以便所有用户都能收到警报。

最佳答案

当您使用socket.emit()时,您将直接发出该套接字,而不是所有套接字。要发射到所有套接字,请从io发射

io.on('connection', function(socket){

    socket.on('ujwal', function (data) {
        //socket.emit('news', function(){
        io.emit('news', 'some message');
    });

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

10-06 12:26