摘要: 1、connect 请求: connect invokeid object a)object标示一系列客户端信息以及版本号等 回应: _result invokeid null object a)此invokeid与请求invokeid一致 b)object标示标准回应信息{level,code,de[url=]script[/url]ion} 2、createStream 请求: crea... 阅读全文
posted @ 2008-08-26 06:47 Educk 阅读(307) 评论(0) 推荐(0) 编辑
摘要: [c#]实现fms服务器,rtmp协议破解(6),注意细节 关于ping 1、服务器会每隔一定的时间ping客户端 2、以现在的测试来看,是15秒间隔的 3、若30秒客户端无回应,说明造成了严重的lag,应抛弃 关于流控制 1、服务器会每隔一定的流量发送通知消息 2、以现在的数据来看,是每隔1250000bytes进行通知 3、服务器会计算即时带宽,并以客户端的应读区数回应为依据增减画面帧数(0... 阅读全文
posted @ 2008-08-26 06:47 Educk 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 1,C->S,连接 0080: 03 00 00 00 00 01 ................ 0090: 9B 14 00 00 00 00 02 00 07 63 6F 6E 6E 65 63 74 .........connect 00A0: 00 3F F0 00 00 00 00 00 00 03 00 0... 阅读全文
posted @ 2008-08-26 06:46 Educk 阅读(573) 评论(0) 推荐(0) 编辑
摘要: [attachimg]1398[/attachimg] 已经成功实现rtmp协议的解包,压包,连接和服务端的connect函数和accept函数也实现了,虽然这不是件容易的事情,但是很有趣。 总结一下,之前一直困惑我的数据包交错问题,也就是说频道在这儿的作用。 rtmp协议是一个实时性要求非常高的协议,所以数据包的发送,接受和处理都不能耗时太长,否则会产生停滞,所以包最大的大小为128k,通过不... 阅读全文
posted @ 2008-08-26 06:45 Educk 阅读(1044) 评论(1) 推荐(0) 编辑
摘要: 此AMF解码为AMF2.0版本的 整个rtmp协议数据都是AMF格式的,且连续放置,此处理过程应该在包完全接受后处理。 第一个字节标示数据类型: 0x00 - AS Number 0x01 - AS Boolean 0x02 - AS String 0x03 - AS Object 0x05 - AS null 0x06 - AS undefined 0x07 - AS reference 0x0... 阅读全文
posted @ 2008-08-26 06:43 Educk 阅读(777) 评论(0) 推荐(0) 编辑
摘要: [c#]实现fms服务器,rtmp协议破解(2),数据包详解 1、握手 Client->Server:Sends Handshake Request. This is not a protocol packet but a single byte (0×03) followed by 1536 bytes. There is a counter which goes up, so it ... 阅读全文
posted @ 2008-08-26 06:39 Educk 阅读(796) 评论(0) 推荐(0) 编辑
摘要: [c#]实现fms服务器,rtmp协议破解(1),简介 Experience: 从月中的关于服务器推技术的思考,发现无论是长轮询还是早期的web页面技术都不能很好的实现Comet.要真正彻底的实现服务器推,必须采用socket,富媒体技术现在只有唯一的选择Flash,虽然Silverlight表现出强劲的势头,但这不会是个简单的过程。 20号之前实现了基于xmlsocket的长连接中间件,通过j... 阅读全文
posted @ 2008-08-26 06:36 Educk 阅读(3553) 评论(2) 推荐(0) 编辑