Feb 22

客户端预先定义say_Result响应函数,然后调用由Flash Media Server提供给客户端的say方法。而Flash Media Server为客户端定义的say函数实际上是在处理amfphp提供的服务——phpSay,再由其回调HelloWorld类的phpSay_Result方法,进而触发了客户端预定义的say_Result函数。

客户端:
var _nc = new NetConnection();
_nc.say_Result = trace;
_nc.connect(’rtmp://x/helloworld’);
_nc.call(’say’, null, ‘hello world!’);
Continue reading »

Feb 22

Flash Player 10 中的P2P

已经有很多关于RTMFP激动人心的新闻了,主要是因为Flash Player 10中将支持P2P的通信。现在应该是时候向大家说一下利用该技术大家可以创建什么样的COOL应用,所以我将很乐意地介绍给大家更多有关的信息。

 

因为已经有很多人问过我有关这个技术的细节,一系列的问题有时我不知道如何回答比较恰当。对于那些将使用RTMFP进行开发工作的人,将这篇文章读完是很有好处的哦。

 

Flash Player 10支持P2P通讯吗

Flash Player 10 NetConnection NetStream 上有一些新函数, 这些函数将使得通过将来的FMS可以管理这些P2P通讯。服务器将维护这些潜在的可以被连接上的终端列表。如果NetConnection 到服务器的连接断了或者被关闭,任何又该服务端连接初始化的终端连接都将被关闭。

 

通过Flash Player 10我将如何创建一个P2P连接

SWF通过将来的FMS创建的连接将被分配一个唯一的ID(这个ID看似很难被猜)。其他连接相同服务器的SWF们可以订阅该ID广播的流和事件,当然是在该ID同意的条件下。

在服务端层面,这些ID可以被映射到应用相关的信息中,比如用户名等。对于一个聊天应用来说,这个ID可以连到用户的昵称,当终端用户选择了他们要聊天的对象时,Flash Player将使用这个ID创建一个与那个用户的连接。

 

通过P2P连接我可以发送什么?

之前,你可以通过本地麦克风和摄象头采集流并上传到服务器,同样的,你也将可以将这些流直接发给另外一个已经连接上的PEER

通过NetStream.Send 你可以在应用中发送一些有用的共享数据。任何的数据格式在这个函数中都可以被发送,不过对包大小还是有限制的。

 

PEER连接是如何工作的?

RTMFP UDP包从一个Flash Player直接发送到另一个。服务端负责将Peer IDs解释到网络地址,如果它们中有一方或者全都在NAT设备后,服务端也将协助它们建立连接。如果UDP被防火墙禁掉或者RTMFP协议在mms.cfg的配置文件里被禁掉,peer连接将无法建立。

 

我可以选择UDP或者TCP吗?

不。RTMFP是基于UDP的协议。你将自动地使用UDP协议当你调用了这些函数时。

 

RTMFP允许在Flash Player10上传输大文件吗?

不。大型的文件交换网络应用依赖一项能力,就是可以在需要时,不断地从硬盘中读取一部分文件数据到内存中。在Flash Player中,你可以从机子中加载一个文件,但这个文件需要终端用户手工加载并且将一直存在于内存中。资源的耗尽将导致这个类型的应用毫无用处。

 

我现在可以开始RTMFP吗?

虽然RTMFPFlash Player 10已经支持了,但还没有服务端支持来处理这些请求。如果你打算尝试还没发布的服务端,请发邮件给 fmsprerelease@adobe.com

Feb 11

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)

Continue reading »