gpt4 book ai didi

node.js - socket.io 广播太多数据包

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:23 25 4
gpt4 key购买 nike

我正在尝试向所有连接的客户端广播产品更新后的简单价格。有用。意味着广播成功了,我可以更新我的值,但是广播的内容是问题。

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 });
});
});

关于node.js - socket.io 广播太多数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15103633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com