Похоже, вы неправильно получаете данные на стороне клиента.На стороне сервера вы звоните io.emit('coins', coinData);
, чтобы отправить клиенту данные о монетах.Вы называете событие «монеты», поэтому на стороне клиента вы должны прослушивать событие «монеты» вместо события «подключение».
var div = document.getElementById("coindatadiv");
socket.on("coins", function(allCoinData){
div.innerHTML += "<p>"+allCoinData+"</p>";
});
Надеюсь, это имеет смысл, дайте мне знать, если что-нибудь еще появится!:)
Теперь я понимаю, что вы используете API и хотите, чтобы все клиенты были в курсе самой последней информации из этого API.Вместо этого вы можете просто отправлять все сокеты всякий раз, когда API обновляет:
Изменить
io.on('connection', function(client) {
console.log('Client connected...');
var coinData;
binance.websockets.prevDay('BTCUSDT', (error, response) => {
coinData = response;
console.log(coinData);
});
io.emit('coins', coinData); //this code sending data from server to client
});
На
var coinData = 'not yet defined';
binance.websockets.prevDay('BTCUSDT', (error, response) => {
coinData = response;
io.emit('coins', coinData);
console.log(coinData);
});
io.on('connection', function(client) {
client.emit('coins', coinData);
});
Это будет излучать все сокетыкаждый раз, когда вы получаете сообщение от вашего API.