ActionScript 3:Socket、amf、NetConnection、rtmp……越来越清楚

Posted

技术标签:

【中文标题】ActionScript 3:Socket、amf、NetConnection、rtmp……越来越清楚【英文标题】:ActionScript 3 : Socket, amf, NetConnection, rtmp... Getting clear 【发布时间】:2011-02-22 19:53:29 【问题描述】:

谁能帮我理解闪存客户端和服务器之间的二进制数据传输? rtmp 服务器如何工作?服务器和客户端之间如何传输视频?使用 Socket 和 NetConnection 有什么区别? rtmp-server只是支持amf序列化的socket服务器吗?

如果有人向我解释这些方面,我会非常高兴。谢谢!

【问题讨论】:

【参考方案1】:

Socket 访问网络会话的低级类,创建 TCP 连接,可以发送原始字节或序列化对象。

AMF flash 对象编码为二进制数据,可以通过网络传输或保存到SharedObject。只有实现IExternalizable 的公共字段或类被序列化。用元标记[RemoteClass(alias="com.foo.Bar")]标记它们。

NetConnection 多种协议连接(RTMP、RTMPT、RTMPE 和基于 UDP 的 RTMPF),可以通过远程过程调用发送序列化对象

rtmp-server 是如何工作的?取决于...打开端口并监听来自客户端的 RTMP/TCP 连接。

RTMP服务器提供远程SharedObject,录制从客户端发布的音频/视频NetStream并接收远程过程调用(netConnection.call(handler, ...params))和可以将您的 NetStream 直接重定向到正在播放它的其他客户端/订阅者。

参考:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/Socket.html http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetConnection.html http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html 或 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/package.html#registerClassAlias()

【讨论】:

以上是关于ActionScript 3:Socket、amf、NetConnection、rtmp……越来越清楚的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Actionscript 3 中接收来自 Socket 的命令?

ActionScript 3.0 套接字无法重新连接

AMFObject数据格式解析

使用 mxml 脚本代码连接 ActionScript 类(Socket)

在actionscript服务器和java客户端之间通过socket发送对象

actionscript socket readBytes() <- java app write() write() write()