在下面的程序中,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发送数据,反之亦然。