javascript - chrome.sockets.udp - Receiving duplicate UDP packets -
i building mobile app cordova , chrome.sockets.udp plugin. when app starts (and whenever user presses refresh button), creates udp broadcast in local subnet, , need list devices respond broadcast.
this code have:
function onload() { document.addeventlistener("deviceready", ondeviceready, false); } function ondeviceready() { createsocket(); document.getelementbyid("rfrshbtn").addeventlistener("click",function(){send();}); } var socketinfo; //global variable hold socket info //converts string arraybuffer function str2ab(str) { var buf = new arraybuffer(str.length*2); // 2 bytes each char var bufview = new uint8array(buf); (var i=0, strlen=str.length; < strlen; i++) { bufview[i] = str.charcodeat(i); } return buf; } //converts arraybuffer integer function ab2str(buffer){ var bytearray = new uint8array(buffer); return bytearray; } var buffer = str2ab("message"); //function create,bind,pause socket. called once on start up. function createsocket(){ chrome.sockets.udp.create(function(s){ chrome.sockets.udp.bind(s.socketid,"0.0.0.0",0,function(socketbind){ chrome.sockets.udp.setpaused(s.socketid,true,function(){}); chrome.sockets.udp.getinfo(s.socketid,function(socinfo){ socketinfo = socinfo; //putting socket info in global variable send(); }); }); }); } function send(){ chrome.sockets.udp.send(socketinfo.socketid,buffer,"255.255.255.255",4210,function(packetsent){ receive(); }); } function receive(){ //unpausing socket chrome.sockets.udp.setpaused(socketinfo.socketid,false,function(){}); chrome.sockets.udp.onreceive.addlistener(function(packetreceived){ var datarec = ab2str(packetreceived.data); alert(datarec); }); //pausing socket again after 5 seconds settimeout(function(){ chrome.sockets.udp.setpaused(socketinfo.socketid,true,function(){}); },5000); } the problem receiving same packet multiple times. many times send broadcast more precise (once on start , more times using refresh button). know because have setup 1 device respond , replies different message each time. getting correct message every time being received multiple times.
i new sockets , networking. possible socket creating new stream receive replies each time calling send() function?
Comments
Post a Comment