Tuesday 16 May 2017

Soket Phoenix JS client. Multiple channels on for loop

Im trying to join multiple socket inside a for loop. But Im only getting connection for the last channel name.

This is my code:

  var channels = []
  for(var i =0; i<meters.length;i++){
      var meterId = meters[i].id;
      var channelName = "room_meter:"+meterId;
      console.log("Connecting to:"+channelName);
      var channel = socket.channel(channelName, {});
      channels.push(channel);
      channel.join()
        .receive("ok",function(resp) {
          var connectedId = channel.topic.split(":")[1];
          meter = findMeterData(parseInt(connectedId));
          console.log("CONNECTED TO " + channel.topic);
          console.log(resp);
          startSendingData(meter.id,meter.ip,'http://'+meter.ip+'/gas-level')})
        .receive("error", onChannelError);
    }

Can anyone help me make the socket library make as many connections as elements are on my meters variable?



via Pablo Estrada

No comments:

Post a Comment