node.jsでmulticast
色々調べたけど、うまくいくサンプルがなかったので、書きました。
setMulticastInterfaceをちゃんと入れるのがポイント。
varnews=["Borussia Dortmund wins German championship","Tornado warning for the Bay Area","More rain for the weekend","Android tablets take over the world","iPad2 sold out","Nation's rappers down to last two samples"];constHOST_ADDRESS="192.168.0.1";constMULTICAST_ADDRESS="230.255.192.1"constPORT=5000;vardgram=require('dgram');varserver=dgram.createSocket("udp4");server.on("listening",function(){server.setBroadcast(true);server.setMulticastTTL(128);server.addMembership(MULTICAST_ADDRESS,HOST_ADDRESS);server.setMulticastInterface(HOST_ADDRESS);// これがないとIFからパケットが出なかった});server.bind();setInterval(broadcastNew,3000);functionbroadcastNew(){varmessage=newBuffer(news[Math.floor(Math.random()*news.length)]);server.send(message,0,message.length,PORT,MULTICAST_ADDRESS);console.log("Sent "+message+" to the wire...");//server.close();}