终于有时间试下Strtaus 2的p2p多播功能了。之前看的视频介绍中,Adobe描述一个非常理想的多人P2P数据共享方式。但是今天试了一下后发现视频的速度非常慢(视频的发布和接收端都在一台机器上),感觉上视频被发送到了什么地方后才传了回来。这这……好吧,就当是BETA的问题了,WAIT AND SEE. (2/25日更新,2/23日发布的Flash player 10.1 beta 3 看来解决了这个问题,Demo的速度现在非常正常)
准备工作:
先了解一下什么是stratus以及什么是RTMFP,你可以到http://labs.adobe.com/technologies/stratus/看下官方的解释或者直接看我原来的 Flex 迷你教程 — 基于Stratus的P2P网络电话 (1)(2)(3) 先学习一下Flash p2p的基础. 简单的说原来的Stratus 实现了flash player之间点对点的传输数据,而今天要讲的stratus 2 不仅支持单个的点对点数据传说,还引入了多播的概念。
在原来的stratus中如果我们要做一个多人同时在线的应用,比如多人视频。那么我们需要把在线的所有人都链接起来,类似蜘蛛网的结构,网中的每个人需要与其他所有人链接,这样数据才能在所有人中共享。这种模式在多人连线中是不可取的。假设我们用户A发布一个视频想让其他10个用户观看,那么10个用户都需要链接到他。就中国的普通用户的网络带宽来说,这就是极限了。而Stratus 2 中 “组” 的概念解决了这个问题。用户A发布视频让同一个组中的其他10个人观看。他们并都从A处获取视频。而有可能通过组中的其他用户获取A的视频。这也就是P2P的模式了,每个人都可以作为数据的发出者,数据以最优的方式被观看者收到,参与的人越多,数据的副本就越多。视频的速度也就越快。 (more…)
太激动了,等这天等了好久了,Adobe 2008年发布了Stratus服务器的Beta版,支持flash player之间的点对点链接,今天,Adobe再次更新Status服务,这一更新也使Flash真正进入P2P的世界。现在Adobe的例子还没有出来,感兴趣的朋友可以关注以下几个地方 (引自 http://www.flashrealtime.com/updated-stratus-with-groups-and-multicast/):
- Read more about new Stratus here at Kevin’s blog.
- Also check new Labs page about RTMFP Groups.
- My article about Multicast in Flash Player 10.1
- Read about differences between Stratus and LCCS
FlashPlayer 10 增加了对P2P的支持,尽管现在Stratus server仍处在BETA阶段,但我们还是希望充分的利用Flash 的P2P功能做些事情,于是我们尝试性的做了一个基于P2P的以在线视频交流为主的网站www.halowei.com.
我们尝试了p2p的一对一,一对多,以及多对多的应用,基本上我们对flash的p2p链接表现还是比较满意的,不过现在的p2p实际上只能算是点对点连接,因为它不支持对视频,音频流的转发,这样就不能发挥p2p的长处,现在一个很大的好处就是能节约服务器的资源,但是在多对多连接时,客户端的宽带消耗是一个比较大的问题。期望以后能Flash能真正的P2P.
这里http://www.halowei.com/#u=老白&m=成都合江亭街景是一个对多的演示,我们做了一个直播室,允许用户直播视频,并设定观众的人数。有兴趣的朋友可以试试。
最后如果有兴趣于我们讨论Flash P2P的朋友可以在这里留言或者邮件team@halowei.com
最近因为一直忙于工作,只有很少的时间可以更新Call Me,今天主要对UI进行了一些更新:

- 头像左对齐 — 因为Call Me的最小宽度是220px, 很多用户的博客中Call me都超出了插件栏,因此将头像对齐到插件栏的左边。
- 去掉顶部呼叫提示的边框 — 边框因为是对话框的样式,只适合于Call Me的默认头像,在方形头像时会很不协调,因此去掉。
- 所有提示框中去掉 “博主” 字样, 将昵称显示在提示信息中 — 博主太局限于博客使用,一些用户希望把Call me用于自己的网站或当作客服使用时会很别扭,在现在没有时间做专业的客服版时,这样的修改让Call Me的适用度更大。
Bug fix:
- 修复了在头像设置错误时无法重新进入设置的问题。
- 一个错字。
小提示:
- 修改插件代码中的nameColor可以改变提示字体的颜色。
- 插件代码中设置wmode=”true”可以让背景透明。
点击获取你的Call Me
今天为Call Me加入了一项功能,允许博客间互相通讯, 比如博客A和B都装有Call Me, A博客就可以在自己的博客里通过拨号的方式呼叫博客B。
装有Call Me的博客不需要任何手动升级操作,从现在开始刷新页面就会自动更新, 登录后第二个“电话”图标就可以使用了。
下周计划更新好友功能。



工作之余写了一款基于P2P技术的博客视频通讯插件(支持视频,语音,短信息),本来想取名为blogphone,后来一想取这个名字的话插件就局限在博客范围了,实际上它也可以用做网站在线客服,于是左想右想取了Call Me。不过有朋友说这个名字不够有特点。哎,名字难取呀。
Call Me可以支持所有支持Flash插件的博客,目前为止只测试了wordpress,工作正常,这段测试期会尽量测试多的博客,另外修复代码中的Bug。
做Call Me的初衷是方便和家人通话,如果你也碰巧有不太会使用电脑的家人,叫他们到你的博客上和你聊天吧,保证比教他们用QQ或者SKYPY方便得多:) Call Me 可以让访问博客的朋友很方便的与博主联系。
这一版的CallMe提供以下功能
1. 博主自动登陆。
2. 一键呼叫。
3. 短信收发。
4. 视频/音频控制。
5. 一对一聊天。
6. 占线提示。
7. 关闭浏览器自动下线。
8. 博主可以在自己的博客中呼叫其他装有CallMe插件的博主
9. 联系人列表
在以后的版本中会加入更多,更有用的功能,比如一对多的视频。






有兴趣的朋友点击这里获取你的Call Me插件
在Flex 迷你教程 — 基于Stratus的P2P网络电话 (2)中我们已经知道如何链接一个客户端并且互相发送短信,今天来扩展下面的这些内容
- 呼叫时在被呼叫端显示 “接受”,点击接受后双方建立链接。
- 呼叫试或者接通后可以挂机。
- 添加视频与音频通信。
首先来看看Demo:
Demo 操作:
1. 输入任意名称,点击链接 (两台机器或者两个浏览器)
2. 输入对方的peerId,点击呼叫
3. 被呼叫方点击 “接受” 建立链接。
4. 开始语音,视频,文字通讯.
5. 挂机
Demo地址:
http://flextheworld.com/flash/p2p/P2pPhoneDemo.html
(more…)
接上篇,这一讲里我告诉大家如何链接另一个flash客户端,并且发送文字信息,在下一讲中会引入更多的内容,比如,“是否接收对方呼叫”,“语音和视频的发送” 等等。
看这篇教程时一定要把自己分成“呼叫者”和“被呼叫者”两个身份来看,否者有可能会看得头晕,呵呵。现在我们开始。
1. 首先了解一下我们会用到的变量, 这里要最主要的四个NetStream,他们的作用请看注释。
(more…)
前些天把Adobe官方的p2p Video phone demo的研究了一遍,了解了这个基于Stratus的video phone是如何工作的。由于Adobe的demo需要运行一个python写的web service才可以运行 — 这个web service用于用户名与peer ID之间的转换,真实项目中我们不可能用256-bit 的 peer ID作为联系人的用户名,所以做一个用户名到Peer ID之间的转换是很用必要的,打电话时只需要知道对方的登陆用户名就可以联系,不需要知道这个超长的不可能记住的Peer ID。可能很多不熟悉python的人没有成功运行源代码,现在我就从我的角度告诉大家如何创建这么一个 P2P 电话。(当然不需要额外的web service) (more…)