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
loop
var, it's local to the callback of theon connection
event and doesn't exist in theon disconnect
event. 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: