繁体   English   中英

socket.io广播太多数据包

[英]socket.io broadcasting too many packets

我正在尝试向所有连接的客户广播产品更新的简单价格。 有用。 这意味着广播成功并且可以更新我的值,但是广播的问题出在这里。

自服务器启动以来,Socket.io广播所有消息,而不仅仅是发送最后一条消息。 我似乎找不到如何将广播限制为最新的价格。

服务器:

// Broadcast new price
io.sockets.on('connection', function (socket) {
  socket.on('bidAction', function(from, msg){
    socket.broadcast.emit('bid', { price: new_price, product_id: productID });
  });
});

客户:

var socket = io.connect('http://localhost');
socket.on('bid', function (data) {
  console.log(data);

  // We get the element with price
  $('span.price').html(data.price.toFixed(2)) ;
});

// Now when the price is changed
$('.bid').click(function(){
  // We emit the bidding
  socket.emit('bidAction', {data: 'stuff'});
});

我不确定您是有意还是无意地这样做了。

function(from, msg)

并尝试播放

price: new_price, product_id: productID

在示例中,new_price和productID均未定义

您能否将代码更改为以下代码,以使其更有意义?

客户端:

socket.emit('bidAction', {new_price: 'stuff' , productID : 'stuff'});

服务器端:

io.sockets.on('connection', function (socket) {
  socket.on('bidAction', function(data){
    socket.broadcast.emit('bid', { price: data.new_price, product_id: data.productID });
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM