public void SetPeerInfo(IPEndPoint ipEndPoint) { AMF0Writer request = WriteFlexMessage("setPeerInfo"); request.WriteShortString(ipEndPoint.ToString(), true); Flush(true); }
private void WriteRequetHeader(AMF0Writer writer, string name, double callbackHandle) { writer.Write(Defines.RM_HEADER_MESSAGETYPE_INVOKE); writer.Write(0); writer.WriteShortString(name, true); writer.WriteDouble(callbackHandle, true); }
public void Connect(Variant connectArgs, Action <Flow, Variant> callback) { AMF0Writer request = WriteAMFRequestMessage("connect", Band.PushCallBack(callback)); var amfwriter = new AMFObjectWriter(request, connectArgs); amfwriter.Dispose(); Flush(true); }
private static byte[] CreateBody(string property_name, IEnumerable <AMFValue> arguments) { var s = new MemoryStream(); using (var writer = new AMF0Writer(s)) { writer.WriteString(property_name); foreach (var arg in arguments) { writer.WriteValue(arg); } } return(s.ToArray()); }
public override void SendStream(Stream stream, int length) { var marker = stream.ReadByte() | 0xF0; var echoTime = marker == (Target == null ? 0xFE : 0xFD); stream.ReadUShort(); if (echoTime) { stream.ReadUShort(); } var type = stream.ReadByte(); if (type == 0x10) { var sizePos = stream.Position; var size = stream.ReadUShort(); var flags = stream.ReadByte(); var idFlow = stream.Read7BitLongValue(); var stage = stream.Read7BitLongValue(); if (idFlow == 2 && stage == 1) { var deltaNAck = stream.Read7BitLongValue(); var len = (ushort)stream.ReadByte(); stream.Position += len; stream.ReadByte(); stream.ReadByte(); //type stream.ReadUInt(); //timestamp var amfReader = new AMF0Reader(stream); var str = amfReader.ReadShortString(true); var num = amfReader.ReadAMFDouble(true); var pos = stream.Position; var connectionInfo = amfReader.ReadVariant(); connectionInfo["tcUrl"] = MiddleSession.QueryUrl; connectionInfo["app"] = MiddleSession.QueryUrl.Split('/').Last(); stream.Position = pos; var amfWriter = new AMF0Writer(stream); amfWriter.WriteObject(connectionInfo, true); length = (int)stream.Position; len = (ushort)(stream.Position - sizePos - 2); stream.Position = sizePos; stream.Write(len); } } stream.Position = 6; base.SendStream(stream, length); }
public override void SendStream(Stream stream,int length) { var marker = stream.ReadByte() | 0xF0; var echoTime = marker == (Target == null ? 0xFE : 0xFD); stream.ReadUShort(); if (echoTime) stream.ReadUShort(); var type = stream.ReadByte(); if (type == 0x10) { var sizePos = stream.Position; var size = stream.ReadUShort(); var flags = stream.ReadByte(); var idFlow = stream.Read7BitLongValue(); var stage = stream.Read7BitLongValue(); if (idFlow == 2 && stage == 1) { var deltaNAck = stream.Read7BitLongValue(); var len = (ushort) stream.ReadByte(); stream.Position += len; stream.ReadByte(); stream.ReadByte();//type stream.ReadUInt();//timestamp var amfReader = new AMF0Reader(stream); var str = amfReader.ReadShortString(true); var num = amfReader.ReadAMFDouble(true); var pos = stream.Position; var connectionInfo = amfReader.ReadVariant(); connectionInfo["tcUrl"] = MiddleSession.QueryUrl; connectionInfo["app"] = MiddleSession.QueryUrl.Split('/').Last(); stream.Position = pos; var amfWriter = new AMF0Writer(stream); amfWriter.WriteObject(connectionInfo, true); length = (int) stream.Position; len = (ushort) (stream.Position - sizePos-2); stream.Position = sizePos; stream.Write(len); } } stream.Position = 6; base.SendStream(stream,length); }
private static byte[] CreateBody( string command_name, int transaction_id, AMFValue command_object, IEnumerable <AMFValue> arguments) { var s = new MemoryStream(); using (var writer = new AMF0Writer(s)) { writer.WriteString(command_name); writer.WriteNumber(transaction_id); writer.WriteValue(command_object); if (arguments != null) { foreach (var arg in arguments) { writer.WriteValue(arg); } } } return(s.ToArray()); }
public MessageBuffered(bool repeatable = true) : base(Utils.Rms.GetStream(), repeatable) { Writer = new AMF0Writer(_stream); }
public void CreateStream(Action <Flow, Variant> callback) { AMF0Writer request = WriteAMFMessage("createStream", Band.PushCallBack(callback)); Flush(true); }
public AMFObjectWriter(AMF0Writer writer,Variant initVariant = null) { _writer = writer; _buffer = initVariant ?? Variant.Get(); }
public RTMPProtocolSerializer () { writer = new AMF0Writer(InternalBuffer); }
public AMFObjectWriter(AMF0Writer writer, Variant initVariant = null) { _writer = writer; _buffer = initVariant ?? Variant.Get(); }