接続されているすべてのクライアントに、製品の更新された簡単な価格をブロードキャストしようとしています。できます。ブロードキャストが成功し、値を更新できることを意味しますが、ブロードキャストされるのは問題です。
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'});
});