local rtmfp
Example code for local rtmfp
package
{
import com.bit101.components.InputText;
import com.bit101.components.PushButton;
import com.bit101.components.TextArea;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.NetStatusEvent;
import flash.net.GroupSpecifier;
import flash.net.NetConnection;
import flash.net.NetGroup;
[SWF(backgroundColor=0x0,frameRate=31)]
public class LAB extends Sprite
{
private var tf:TextArea;
private var ip:InputText;
private var pb:PushButton;
// rtmfp
private var connection:NetConnection;
private var group:NetGroup;
private var isConnected:Boolean;
public function LAB()
{
stage.align = "TL";
stage.scaleMode = "noScale";
tf = new TextArea(this,10,10,"init");
ip = new InputText(this,10,130);
pb = new PushButton(this,10,150,"Send",onInput);
connect();
}
private function connect():void
{
connection = new NetConnection();
connection.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
connection.connect("rtmfp:");
}
private function onStatus(e:NetStatusEvent):void
{
log(e.info.code);
switch(e.info.code)
{
case "NetConnection.Connect.Success":
setupGroup();
break;
case "NetGroup.Connect.Success":
break;
case "NetGroup.SendTo.Notify":
log("msg:" + e.info.message);
break;
}
}
private function setupGroup():void
{
var groupSpec:GroupSpecifier = new GroupSpecifier("localDevice");
groupSpec.routingEnabled = true;
groupSpec.ipMulticastMemberUpdatesEnabled = true;
groupSpec.addIPMulticastAddress("224.225.0.0:35353");
groupSpec.multicastEnabled = true;
group = new NetGroup(connection,groupSpec.groupspecWithAuthorizations());
group.addEventListener(NetStatusEvent.NET_STATUS, onStatus);
}
private function onInput(event:Event):void
{
group.sendToAllNeighbors(ip.text);
}
private function log(value:String):void
{
tf.text += value + "\n";
}
}
}