Socket.io房间

时间:2018-08-08 06:32:46

标签: javascript php node.js socket.io

在下面的程序中,Cashier.js调用服务器中的join_session / room,每次它发出cart_items时,服务器就会将它发送给该特定房间中的所有客户端。所以问题是这样做的正确方法,我真的需要在每次发出数据时在我的cashier.js中调用join_session / room吗?

server.js

let nsp = io.of('namespace_name');
let session;

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

    socket.on('join_session', function (client_ip) {
        session = client_ip;
        socket.join(session);
        console.log('New session (' + session + ')');

        socket.on('cart_items', function (data) {
            console.log(session);
            console.log(data);
            nsp.to(session).emit("cart_items", data);
        }); 
    });
});

cashier.js

socket.on('connect', function () {
    socket.emit('join_session', session);
    socket.emit('cart_items', { name: item.name, price: item.price });
});

customer.js

socket.on('connect', function () {
        socket.emit('join_session', session);

        socket.on('cart_items', function (data) {
            console.log(data);
        });
    });

仅供参考,当我尝试在我的cashier.js中执行此操作

socket.on('connect', function () {
        socket.emit('join_session', session);
    });

//on button click
    socket.emit('cart_items', { name: item.name, price: item.price });

有时客户端1向客户端2发送数据,反之亦然。

0 个答案:

没有答案