写得很好,不过我在实际使用中遇到了一些问题。
下载的官方代码中有个readme文档,里面要求“Specify the URL of your web service in WebServiceUrl constant in VideoPhoneLabs.mxml”,是不是要建立一个web service呢,怎么建立?
还有后面提到“The Python script should be placed in the cgi-bin location according to your web server installation. The database is an SQLite3 database. In reg.cgi, please edit the location of the database in variable dbFile. ”是不是还要建一个数据库?
我是个新手,希望不吝赐教。谢谢!
你好。我是个新手,我按照你的步骤坐下来,可是运行时发现了12个错误,但是错误类型只有两类。
错误提示:参数个数不正确,应该不超过1个。
myStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
访问肯能未定义属性farID,nearID,DIRECT_CONNECTIONS。
incomingStream = new NetStream(netConnection,subscriberStream.farID);
myStream.publish(netConnection.nearID);
outgoingStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
你好。我是个新手,我按照你的步骤坐下来,可是运行时发现了12个错误,但是错误类型只有两类。能不能帮忙解决下啊,不胜感激。
错误提示:参数个数不正确,应该不超过1个。
myStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
访问肯能未定义属性farID,nearID,DIRECT_CONNECTIONS。
incomingStream = new NetStream(netConnection,subscriberStream.farID);
myStream.publish(netConnection.nearID);
outgoingStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
unable to open ‘C:\Programe Fiies\Adobe\Flex builder 3\sdks\3.1.0\frameworks\libs\player\10\playerglobal.swc’是不是也是版本问题啊,难道说我的sdk的版本是3.1?可是我按照你第一篇文章里的地址下载了sdk版本是4.1了。我安装有误么。实在是很感谢你,我其实还真没想到你会恢复我,真是谢谢你。编译设置我改成10.0.0后就只有上面的问题了
unable to open ‘C:\Programe Fiies\Adobe\Flex builder 3\sdks\3.1.0\frameworks\libs\player\10\playerglobal.swc’是不是也是版本问题啊,难道说我的sdk的版本是3.1?可是我按照你第一篇文章里的地址下载了sdk版本是4.1了。我安装有误么。实在是很感谢你,我其实还真没想到你会恢复我,真是谢谢你。编译设置我改成10.0.0后就只有上面的问题了(真的很谢谢你的帮助,谢谢)
上面的问题解决了,sdk的版本是4.1的,然后编译设置10:0:0了,但是人还有一个错误,和一个警告出现了,解决不了啊。希望你帮忙一下,拜托你解决下,再次感谢哈
下面是错误提示:
An internal buid error has occurred.Right-click for more information
下面是警告提示:
Design mode:Cannot load textLayout.swc(reason:ERROR:load Verify).It may require classes(such as Adobe AIR conponents)that are not supported by design mode.Check the Eclipse error log more details.
上面的问题解决了,sdk的版本是4.1的,然后编译设置10:0:0了,但是还有一个错误,和一个警告出现了,解决不了啊。希望你帮忙了,拜托你解决下哈,再次感谢
下面是错误提示:
An internal buid error has occurred.Right-click for more information
下面是警告提示:
Design mode:Cannot load textLayout.swc(reason:ERROR:load Verify).It may require classes(such as Adobe AIR conponents)that are not supported by design mode.Check the Eclipse error log more details.
replica Louis Vuitton handbags is attractive in outer appearance and exquisite in inner side. There are flat handles that are adjustable, a removable padded shoulder strap, an address holder which can be stamped with baby or mother’s initials, and a key ring holder. In addition, compared with the traditional diaper bag, LV handbag has more functions, such as a change purse, a board which could print the address of the holders by hot-stamping and the designer addsan extra band on both sides, which could save labor when you carry Louis Vuitton bag on sale
呵,终于找到了,正是我现在所需要的,谢谢
Reply
多方通话是否可以实现呢?
Reply
mrwiis Reply:
May 27th, 2009 at 3:41 PM
nop,you can`t make multipoint communication~
Reply
很好的东西,谢谢
Reply
学习
Reply
学习。。。
Reply
学习了~
Reply
非常不错
Reply
Nice site really!
Reply
look so good
Reply
真是好文章,但博主能不能画个流程图出来啊,看你的代码不好理解
Reply
很强大的P2P~
Reply
very good article
Reply
我來學習學習~感謝~
Reply
嘿嘿 支持!
Reply
我來學習學習~感謝~
Reply
很强大啊,可不可以用来做在线客服呢?我要一人对多人的那种,就像是网上跳艳舞的那种,一人跳,多人看哈哈
Reply
Kevin Luo Reply:
February 18th, 2009 at 9:30 AM
完全可以
Reply
学习了,谢谢!
Reply
看看
Reply
太好了,真棒.
Reply
cool!
Reply
正是我想要的.
Reply
你人真好
Reply
hao
Reply
谢谢版主,实用的东西.
Reply
学习一下!
Reply
正想学这方面的东西
Reply
找了很久了的东西
Reply
good
Reply
good
Reply
不错
Reply
我要学习一下。
Reply
GOOD
Reply
不错,支持楼主
Reply
耶。。。。。。。。。well
Reply
good!
Reply
非常帮的程序,谢谢
Reply
我也要一个源码,正在找这个呢,呵呵呵,谢谢你
Reply
非常不错~Flash p2p
Reply
非常感谢
Reply
s很好
Reply
写的不错
Reply
看看代码
Reply
一年前想过这个东西,但是没有搞成功
Reply
看看
Reply
好东西
Reply
很好很强大.
Reply
不错啊
Reply
非常感谢
Reply
请问下,我的怎么一直提示少了p2pPhoneDemo2.html,这个文件,我是从上面网页下载的啊。
Reply
Kevin Luo Reply:
March 19th, 2009 at 8:24 AM
你做Project -> Clean一次。会重新生成html文件
Reply
很不错啊。 学习了。
Reply
pretty things!
Reply
fdsafsaf
Reply
看看
Reply
一个简单的CHAT也被你整个长篇大论出来了
private var is_host:Boolean = true;
private function initSendStream():void
{
myStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
myStream.addEventListener(NetStatusEvent.NET_STATUS, netStreamHandler);
myStream.publish(netConnection.nearID);
//监听onPeerConnect事件
var o:Object = new Object();
o.onPeerConnect = function(subscriberStream:NetStream):Boolean
{
if (!is_host)
return false;
toClientStream = subscriberStream;
toClientStream.client =
{
onClient:function(txt:String):void
{
info.text += “ccccc=>:” + txt + “\n”;
}
}
info.text += “有用户连接\n”;
toClientStream.send(“onHostData”, “连接成功”);
return true;
}
myStream.client = o;
}
private function netStreamHandler(e:NetStatusEvent):void
{
trace(e.info.code);
}
private function call():void
{
is_host = false;
//通过对方的peerId链接被呼叫者,播放对方的身份信息流
fromHostStream = new NetStream(netConnection,peerId.text);
fromHostStream.addEventListener(NetStatusEvent.NET_STATUS, netStreamHandler);
fromHostStream.play(peerId.text);//告诉FMS我要连接peerId.text??
var o:Object = { };
o.onHostData=function(txt:String):void
{
info.text+=”onHostData:”+txt+”\n”;
}
fromHostStream.client=o;
}
private function send():void
{
if (is_host)
toClientStream.send(“onHostData”, message.text+” “+JString.formatTime(new Date));
else
fromHostStream.send(“onClient”, message.text+” “+JString.formatTime(new Date));
}
Reply
Kevin Reply:
March 21st, 2009 at 10:28 PM
这个实现很简单,代码也很短,我写教程的目的是告诉大家每行代码的意思
Reply
tianzhu Reply:
August 29th, 2009 at 10:42 AM
你有毛病啊,我觉得写的很好啊,我很菜的,不像你这种空心大萝卜,萝卜仔
Reply
cooerson Reply:
January 14th, 2010 at 1:34 PM
我也觉得,能把代码写得这么复杂,牛
Reply
多方通话是否可以实现呢?
Reply
这里面有插件吗?
Reply
写的很好啊,博主技术蛮厉害啊
Reply
Kevin Reply:
August 4th, 2009 at 2:53 PM
谢谢:)
Reply
See See
Reply
谢谢:)
Reply
Reply
看代码好像并不是很复杂,只是p2p很值得关注一下
Reply
Kevin Reply:
November 18th, 2009 at 10:40 PM
关注P2P的话你一定要关注Flash Player 10.1
Reply
多谢前辈
Reply
flash支持P2P,以后局域网电影共享、文件互传应该没有问题
Reply
多谢……
Reply
写得很好,不过我在实际使用中遇到了一些问题。
下载的官方代码中有个readme文档,里面要求“Specify the URL of your web service in WebServiceUrl constant in VideoPhoneLabs.mxml”,是不是要建立一个web service呢,怎么建立?
还有后面提到“The Python script should be placed in the cgi-bin location according to your web server installation. The database is an SQLite3 database. In reg.cgi, please edit the location of the database in variable dbFile. ”是不是还要建一个数据库?
我是个新手,希望不吝赐教。谢谢!
Reply
Kevin Luo Reply:
January 28th, 2010 at 10:44 AM
官方的版本中有一个python写的服务端,用于保存你的用户名等等的东西。所以使用他需要在你的机器上装一个python的环境才能运行。 我的这个和他的一样,我把python的东西去掉了。这个服务器的作用是用来做用户名和peerid之间的映射
Reply
Gluttony Reply:
January 28th, 2010 at 10:50 AM
果然是这样的,谢谢了,我还是研究你的代码吧
Reply
再次请教Kevin一个问题,经过测试peerID应该是Adobe服务器随机返回的唯一的链接标示,那么问题也随之而来了,如果是一个IM系统采用Stratus服务器进行点对点的通信,每次发起会话之前都要也就是必须发起者(A)与接受者(B)都连接Adobe服务器了。
那么A如何去获得B每次不同的随机peerID呢?毕竟ID每次都是不同的呀。
等待您的解答了,谢谢。
Reply
Kevin Luo Reply:
March 9th, 2010 at 9:53 AM
是的,每次 peerid会不一样,所以你还需要自己写一个服务器来做peerid的配对,a通过你的服务器找到b的peerid
Reply
seamonkey Reply:
May 21st, 2010 at 2:27 PM
謝謝版大細心分享
我有個問題~
我測試了一下~發現同一台電腦開兩個視窗 RUN它沒問題~可以溝通到
但是我請在不同地方的朋友連它 我們彼此就無法溝通到了
我以為Stratus的方法不會遇到這樣的狀況…..
請問是哪邊可能出了問題??
Reply
Kevin Luo Reply:
May 21st, 2010 at 2:29 PM
很有可能是你们双方其中一方的防火墙引起的。防火墙需要打开允许UDP的限制。
Reply
seamonkey Reply:
May 21st, 2010 at 5:51 PM
恩~我們剛剛又測試了
http://labs.adobe.com/technologies/stratus/samples/
這個官方的版本 發現可以連線成功~也可以對話
所以應該可以排除掉UDP的限制問題~
我瀏覽了一下官方的程式碼
版大的程式碼好像是精簡掉mic跟video的功能
然後把peerID配對的改成人工輸入~
那為什麼…這裡卻無法兩台電腦互連呢….
真的很謝謝版大那麼快回我~~讓我有解決的方向OTZ
謝謝
seamonkey Reply:
May 21st, 2010 at 6:20 PM
我發現可能是我朋友公司的防火牆有檔連線~~
因為我跟另一位朋友連線成功了!!
ADOBE官網那之程式大概有設在允許範圍內吧
所以才能連線成功~
謝謝版大~~
Reply
Kevin Luo Reply:
May 22nd, 2010 at 10:19 PM
呵呵,不客气
[...] 安装好上面的东西,然后等我明天来写 “基于Stratus的P2P网络电话 (2)” [...]
这个例子在局域网可以,为什么放到互联网就不能连接上了??请指教
Reply
Kevin Luo Reply:
July 28th, 2010 at 4:55 PM
互联网上可以用的,不过如果防火墙禁止UPD包的话,会被阻隔,清检查下防火墙设置
Reply
adobe stratus 申请的key连接数有限制吗?
Reply
Kevin Luo Reply:
July 28th, 2010 at 4:54 PM
没有限制
Reply
一对多怎么弄呀?
Reply
Louis Vuitton
Gucci Shoes
Hermes Handbags
christian louboutin
nike shoes
replica bags
Louis Vuitton
Gucci Bags
Cheap gucci shoes
wholesale gucci shoes
louis vuitton
herve leger
Rolex Watches
Omega Watches
louis vuitton multicolore
louis vuitton vernis
Reply
你好。我是个新手,我按照你的步骤坐下来,可是运行时发现了12个错误,但是错误类型只有两类。
错误提示:参数个数不正确,应该不超过1个。
myStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
访问肯能未定义属性farID,nearID,DIRECT_CONNECTIONS。
incomingStream = new NetStream(netConnection,subscriberStream.farID);
myStream.publish(netConnection.nearID);
outgoingStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
Reply
你好。我是个新手,我按照你的步骤坐下来,可是运行时发现了12个错误,但是错误类型只有两类。能不能帮忙解决下啊,不胜感激。
错误提示:参数个数不正确,应该不超过1个。
myStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
访问肯能未定义属性farID,nearID,DIRECT_CONNECTIONS。
incomingStream = new NetStream(netConnection,subscriberStream.farID);
myStream.publish(netConnection.nearID);
outgoingStream = new NetStream(netConnection, NetStream.DIRECT_CONNECTIONS);
Reply
Kevin Luo Reply:
July 28th, 2010 at 4:54 PM
你的开发环境不对,建议看看第一篇文章。 你需要flexSDK 3.2以上,以及flash player10.0.0的最低编译设置
Reply
forestking Reply:
July 29th, 2010 at 1:59 PM
unable to open ‘C:\Programe Fiies\Adobe\Flex builder 3\sdks\3.1.0\frameworks\libs\player\10\playerglobal.swc’是不是也是版本问题啊,难道说我的sdk的版本是3.1?可是我按照你第一篇文章里的地址下载了sdk版本是4.1了。我安装有误么。实在是很感谢你,我其实还真没想到你会恢复我,真是谢谢你。编译设置我改成10.0.0后就只有上面的问题了
Reply
unable to open ‘C:\Programe Fiies\Adobe\Flex builder 3\sdks\3.1.0\frameworks\libs\player\10\playerglobal.swc’是不是也是版本问题啊,难道说我的sdk的版本是3.1?可是我按照你第一篇文章里的地址下载了sdk版本是4.1了。我安装有误么。实在是很感谢你,我其实还真没想到你会恢复我,真是谢谢你。编译设置我改成10.0.0后就只有上面的问题了(真的很谢谢你的帮助,谢谢)
Reply
forestking Reply:
July 31st, 2010 at 2:55 PM
上面的问题解决了,sdk的版本是4.1的,然后编译设置10:0:0了,但是人还有一个错误,和一个警告出现了,解决不了啊。希望你帮忙一下,拜托你解决下,再次感谢哈
下面是错误提示:
An internal buid error has occurred.Right-click for more information
下面是警告提示:
Design mode:Cannot load textLayout.swc(reason:ERROR:load Verify).It may require classes(such as Adobe AIR conponents)that are not supported by design mode.Check the Eclipse error log more details.
Reply
forestking Reply:
July 31st, 2010 at 2:56 PM
上面的问题解决了,sdk的版本是4.1的,然后编译设置10:0:0了,但是还有一个错误,和一个警告出现了,解决不了啊。希望你帮忙了,拜托你解决下哈,再次感谢
下面是错误提示:
An internal buid error has occurred.Right-click for more information
下面是警告提示:
Design mode:Cannot load textLayout.swc(reason:ERROR:load Verify).It may require classes(such as Adobe AIR conponents)that are not supported by design mode.Check the Eclipse error log more details.
Reply
博主你好!小弟学习了你的代码,有些地方不明白,望请指教!在下发现中间有几处貌似有语法错误,语句后没有加分号结尾,但是编译器没有报错,我试着把这些缺的分号补上,编译也没有报任何错误。但是运行却发现两个客户端连接不上了,真是奇怪啊!不知道博主能否指点一二,谢谢!
缺分号的语句有:
第一段代码中
Alert.show(“请输入任意用户名”,”错误”)
return
第三段代码中
info.text += “正在呼叫,请稍候…… \n\n”
incomingStream.client = i
Reply
Kevin Luo Reply:
August 4th, 2010 at 10:12 AM
多谢修改,不过Flex中对大多数地方对分号是不敏感的(少数情况除外),所以不会引起错误。连接不上你看看是不是你连接的是别的网络中的用户,并且他设置了防火墙禁止UPD通讯
Reply
Robin Reply:
August 5th, 2010 at 2:12 PM
我就是在本机上开两个Flash Player测试的,一旦加上分号编译后就彼此连接不上,去掉还原后编译,就又能连接上了,屡试不爽,真是非常奇怪啊!
Reply
Kevin Luo Reply:
August 5th, 2010 at 2:24 PM
呵呵,我也无法解释了
我刚接触flash p2p没多久 想问一下 这个能进行多对多的聊天吗 就是 同时与多个人进行聊天 就是不1个peerid是否可以同时进行通信 做法 能给我讲解一下吗 (就是 怎么实现)
麻烦大虾了~~ 教教我这个热爱flash的人
Reply
Robin Reply:
August 3rd, 2010 at 11:54 PM
这个程序不能多对多,多对多的话好像要使用NetGroup类,进行群组P2P通信
Reply
Kevin Luo Reply:
August 4th, 2010 at 10:10 AM
这个倒是可以多对多的,不过需要自己写代码将所有的人用这个例子中的方法连接起来,脸上后类似蜘蛛网,每个人需要和所有人有连接。 也就是说每个人有一个outgoingStream和N个incomingStream可以解决。不过这种方法很不稳定。 现在的Stratus 2中的NetGroup可以实现分组连接,用以实现多对多或者一对多,因为NetGroup是以multicast的形式传播数据,所以效率和稳定都不错。你可以看我最新一个的Stratus的例子。
Reply
Robin Reply:
August 5th, 2010 at 2:20 PM
想和博主探讨一下,如何使用P2P开发一个基于好友通信的IM程序呢?Stratus由于托管在Adobe,自己不能架设,不能使用服务器端API,这样的话要实现好友管理,及好友上下线动态显示,只能再连接一台FMS应用服务器。好友间通信使用Stratus的P2P方式,而好友管理和上下线动态显示使用传统的FMS,提供数据库支持和SharedObject来维护用户好友的在线状态。不知道博主有没有好的方法能基于P2P实现好友在线状态动态显示呢?
Reply
Kevin Luo Reply:
August 5th, 2010 at 2:24 PM
不需要再用FMS,只需要自己的随便什么后台就可以了(PHP, JAVA, ruby, 等等),用Stratus获取peerid,保存在自己的后台。
[...] (3) – 10,873 viewsCall Me — 博客视频聊天插件 – 10,724 viewsFlex 迷你教程 — 基于Stratus的P2P网络电话 (2) – 9,872 viewsAdobe Flex/AIR 迷你教程 – 8,663 views开源代码 – 7,274 viewsAdobe [...]
replica Louis Vuitton handbags is attractive in outer appearance and exquisite in inner side. There are flat handles that are adjustable, a removable padded shoulder strap, an address holder which can be stamped with baby or mother’s initials, and a key ring holder. In addition, compared with the traditional diaper bag, LV handbag has more functions, such as a change purse, a board which could print the address of the holders by hot-stamping and the designer addsan extra band on both sides, which could save labor when you carry Louis Vuitton bag on sale
Reply
拜读了
Reply
[...] 原文:http://www.flextheworld.com/2009/01/flex-stratus-phone-2.html [...]