There is an api which sends some json data.The nodejs server get this json data and send client with websocket every 5 seconds.If the connection is on when a clent connects it works but when the client disconnects ,it doesnt stop.
The code
io.on('connection', function(client) {
var loop=setInterval(()=>{
console.log('Client connected...');
fetch('https://www.foo.com/api/v2/searchAssets')
.then(res => res.json())
.then(json =>
{client.emit('news'{json});console.log(json)}),5000);
})});
io.on('disconnetion',function(){
clearInterval(loop);
console.log("disconnected");
})
OR
Do you have any other advice to send this json data to client side except websocket?
Thansk in advance for your supporting
Your problem is a scope problem. When you declare the
loopvar, it's local to the callback of theon connectionevent and doesn't exist in theon disconnectevent. Based on the doc of how to handle disconnection you can move the disconnection handler inside the connection handler like this:But I would not recommend this architecture as the streamed data is independent of a client. The data can be fetched once and streamed to all. Here is how you can do it: