一种p2p视频通讯的方法

文档序号:7606949阅读:119来源:国知局
专利名称:一种p2p视频通讯的方法
技术领域
本发明属于网络技术领域,尤其涉及一种p2p视频通讯的方法。
背景技术
互联网技术的发展使我们可以足不出户就实现了即时通讯,与好友聊天,与合作伙伴谈判等等。目前,基于需要下载安装的即时通讯工具,如MSN,QQ,网易泡泡已经深受大家的喜爱,它为人们的沟通、信息交流提供了新的途径,是除了手机、固话、电子邮件之外的又一种重要的信息交流方式。借助这些工具,用户可以实现单人或者多人视频,可以召开网络视频会议,可以进行网络远程教育,还可以让人和人之间的交流成本大大降低,且提高了效率。但是,使用上述即时通工具用户必须下载安装相应的客户端软件。这是一个较为复杂的配置和了解熟悉的过程,对于从来没有使用过这类工具和不经常使用计算机的用户来说比较困难。而且,现在的客户端下载的即时通讯工具软件越来越大,比如QQ2010软件达到 32. 6MB, MSN软件达到11. 2MB,占用了不小的电脑存储空间;同时,因为下载带来的网络安全问题也会困扰着用户;另外,由于所有数据信息(比如聊天记录等)都存储在电脑终端, 一旦更换了电脑(如出差等原因)或者重新安装软件,用户将无法获取原有的数据信息,非常不便于是,人们便有了这样的需求无需下载安装任何软件,一打开网页就可以实现即时通讯,且所有的数据信息能够安全地保存在网页上。目前,网络上也出现了一些网页上的通讯方式,比如留言板、论坛等,但是,其共同的不足是即时性太差,无法实现网页版音视频,难以满足人们即时沟通的需求。即使现在有些软件在网页上也实现了不用下载安装软件就可以视频聊天(如fms或者red5),但是却不能很好地实现点对点的视频通讯,无法利用用户的带宽资源,给平台提供方造成很大的服务器和带宽压力,导致运营成本随着用户数量的增加而急剧上升,从而限制了这些软件的运营规模与经营范围,不具备大范围运用和推广的条件,以至于目前网页版音视频没有出现具备一定市场规模的产品和公司。

发明内容
本发明提供了一种p2p视频通讯的方法,实现了在客户端不下载和高即时性的情况下,最大限度地利用用户闲置的带宽资源,极大地降低了平台方所要承受服务器和带宽的压力,将大力推动网页版网络视频会议和远程教育的普及。为了解决上述技术问题,本发明采用以下的技术方案一种p2p视频通讯的方法,包括以下步骤1)用户访问网页,调用flash接口连接socket服务器。flash连接stratus服务器,取得key,建立连接Netcormectior^Netcormection为变量名)并监听收到的消息。 Flash将用户的用户名和key发送给socket服务器,socket服务器保存用户的用户名和 key。源用户网页中的javascript代码调用flash接口,将包含目标用户的用户名消息发送给socket服务器,socket服务器接收到源用户发来的消息,返回目标用户的用户名所对应的key给源用户网页中的flash。源用户网页中的flash通过Netconnection和目标用户的key,向目标用户发送一个视频邀请消息,目标用户收到消息后,在目标用户的网页上加载一个用于播放视频的flash(设置该flash名称为target_vide0_flash),target, video_flash连接stratus服务器,取得一个新的key,并连接socket服务器,将新的key 和目标用户的用户名保存到socket服务器。目标用户将源用户的用户名发送给socket 服务器,socket服务器返回该源用户的用户名所对应的新的key给目标用户的target_ video—flash,target_ _video_flash 收至Ij socket 月艮务器返回的 key 后,通过 Netconnection 连接和key开始播放该key所对应的视频流,同时目标用户将本地的摄像头视频流通过 Netconnection连接发送给源用户的flash ;2)目标用户通过Netcormection将同意视频通讯的消息发送给源用户;3)源用户收到目标 用户同意视频的消息后,在源用户的网页上加载一个用于播放视频的 flash (设置该 flash 名称为 source_video_flash),source_video_flash 连接 stratus服务器,取得一个新的key,并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器。源用户将目标用户的用户名发送给socket服务器,socket服务器返回该目标用户的用户名所对应的新的key给源用户的S0urCe_Vide0_flaSh,source, video_flash收到socket服务器返回的key后,通过源用户的Netconnection连接和目标用户的key开始播放该key所对应的视频流,同时源用户将本地的摄像头视频流通过源用户的Netconnection连接发送给目标用户的flash。其中步骤1)包含如下过程1a)用户访问网页,调用flash接口连接socket服务器;lb) Flash stratus 服务器,取得 key,建立连接 Netconnection (Netconnection 为变量名)并监听收到的消息;lc)Flash将源用户的用户名和key发送给socket服务器,socket 服务器保存源用户的用户名和key ; Id)源用户网页中的javascript代码调用flash接口, 将包含目标用户的用户名消息发送给socket服务器,socket服务器接收到源用户发来的消息,返回目标用户的用户名所对应的key给源用户网页中的flash ;le)源用户的网页中的flash通过Netcormection和目标用户的key,向目标用户发送一个视频邀请消息,目标用户收到消息后,在目标用户的网页上加载一个用于播放视频的flash (设置该flash名称为 target_video_flash),target_video_fIash 连接 stratus 月艮务器,取得一个新的 key, 并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器;If)目标用户将源用户的用户名发送给socket服务器,socket服务器返回该源用户的用户名所对应的新的 key 给目标用户的 target_video_flash, target_video_flash 收到 socket 服务器返回的key后,通过Netcormection连接和key开始播放该key所对应的视频流,同时目标用户将本地的摄像头视频流通过Netcormection连接发送给源用户的flash。其中步骤2)包含如下过程目标用户通过Netcormection将同意视频通讯的消息发送给源用户。其中步骤3)包括如下过程3a)源用户收到目标用户同意视频的消息后,在源用户网页上加载一个用于播放视频的flash (设置该flash名称为S0urCe_vide0_flash), source_video_flash连接stratus服务器,取得一个新的key,并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器;3b) Socket服务器接收到源用户发来的消息,返回目标用户的用户名所对应的key给源用户的网页中的flash ;3c)源用户网页中的flash通过Netcormection和目标用户的key,向目标用户发送视频邀请消息。 其中步骤4)包括如下过程4a)目标用户的flash收到消息后,调用网页上的脚本代码接口,在目标用户的网页上加载一个用于播放视频的flash (设置该flash名称为 target_video_flash) ;4b) target_video_flash 连接 stratus 月艮务器,取得一个新的 key, 并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器;4c)目标用户将源用户的用户名发送给socket服务器,socket服务器返回该源用户的用户名所对应的新的 key 给目标用户的 target_video_flash ;4d) target_video_flash 收至Ij socket 月艮务器返回的key后,通过Netcormection连接和key开始播放该key所对应的视频流,目标用户将本地的摄像头视频流通过Netcormection连接发送给源用户的flash,目标用户通过 Netconnection将同意视频通讯的消息发送给源用户。本发明与现有技术相比具有以下优点(1)用户不用下载任何软件在网页上就可以实现即时通讯,节省了电脑的存储空间,也减少了很多的不便利。(2)即时性很好,无滞后。(3)适合包括个人电脑在内的任何网络终端的使用。(4)由于采用了 p2p技术,可大大减轻服务器压力和节约带宽,大幅度降低运营成本。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是本发明的技术方案流程2是本发明的详细流程图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本实施例的技术方案如下一种即时通讯的方法,包括以下步骤1)用户访问网页,调用flash接口连接socket服务器。Flash stratus服务器, 取得key,建立连接Netcormection (Netcormection为变量名)并监听收到的消息。Flash 将源用户的用户名和key发送给socket服务器,socket服务器保存源用户的用户名和 key。源用户网页中的javascript代码调用flash接口,将包含目标用户的用户名消息发送给socket服务器,socket服务器接收到源用户发来的消息,返回目标用户的用户名所对应的key给源用户网页中的flash。源用户网页中的flash通过Netconnection和目标用户的key,向目标用户发送一个视频邀请消息,目标用户收到消息后,在目标用户的网页上加载一个用于播放视频的flash (设置该flash名称为target_vide0_flash),target, video_flash连接stratus服务器,取得一个新的key,并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器。目标用户将源用户的用户名发送给socket 服务器,socket服务器返回该源用户的用户名所对应的新的key给目标用户的target_ video—flash,target_ _video_flash 收至Ij socket 月艮务器返回的 key 后,通过 Netconnection 连接和key开始播放该key所对应的视频流,同时目标用户将本地的摄像头视频流 通过 Netconnection连接发送给源用户的flash ;2)目标用户通过Netcormection将同意视频通讯的消息发送给源用户;3)源用户收到目标用户同意视频的消息后,在源用户的网页上加载一个用于播放视频的 flash (设置该 flash 名称为 source_video_flash),source_video_flash 连接 stratus服务器,取得一个新的key,并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器。源用户将目标用户的用户名发送给socket服务器,socket服务器返回该目标用户的用户名所对应的新的key给源用户的S0urCe_Vide0_flaSh,source, video_flash收到socket服务器返回的key后,通过源用户的Netconnection连接和目标用户的key开始播放该key所对应的视频流,同时源用户将本地的摄像头视频流通过源用户的Netconnection连接发送给目标用户的flash。下面进一步详细说明本发明所述的方法参见说明书附1、图2,源用户在浏览器里输入本人的个人网页地址或者通过链接到达源用户的个人网页;源用户输入账号和密码登录源用户的个人网页,若登录成功,则将此账号作为通讯账号,若不登录,则系统为其分配一个临时通讯账号。客户端脚本程序调用flash的接口连接socket服务器,并建立连接。flash连接stratus服务器,取得key,建立连接Netconnection (Netconnection为变量名)并开始监听收到的消息。同时Flash将源用户的用户名和key发送给socket服务器,socket服务器保存源用户的用户名和key。源用户网页中的javascript代码调用flash接口,将目标用户的用户名发送给socket服务器。Socket服务器接收到源用户发来的消息,返回目标用户的用户名所对应的key给源用户网页中的flash。源用户网页中的javascript程序调用flash接口, flash通过Netcormection和目标用户的key,将视频邀请消息发送给目标用户网页上的 flash。目标用户网页上的flash收到消息后调用脚本程序接口在目标用户的网页上加载一个flash。目标用户的flash请求socket服务器,获取源用户的用户名对应的key,目标用户的flash获取到key后,flash开始接收并播放源用户发来的视频,同时将本地的摄像头视频通过Netcormection发送给源用户,并给源用户发送一个已同意视频的消息,源用户收到目标用户发来的消息,在源用户的网页加载一个flash。源用户的flash请求socket 服务器,获取目标用户的用户名对应的key,源用户的flash获取到key后,flash开始接收并播放目标用户发来的视频,同时将本地的摄像头视频通过Netcormection和目标用户所对应的key发送给目标用户。图1是本发明的技术方案流程图,详细步骤如下步骤101 开始;步骤102 打开网页,加载flash ;步骤103 连接stratus服务器获取用于P2P通讯的key,并建立监听;步骤104 源用户通过获取目标用户的key和建立的连接,发起视频邀请;步骤105 若目标用户同意邀请,则执行步骤106 ;否则,转步骤109 ;
步骤106 源用户和目标用户同时在网页加载一个新的flash用于播放视频;步骤107 视频flash连接stratus服务器获取用于P2P通讯的一个新的key ;步骤108 源用户新加载的flash和目标用户新加载的flash通 过这个key对应的连接将本地的视频流发送出去,同时开始接收来自对方的key的视频;步骤109 结束。图2是本发明的详细流程图,详细步骤如下步骤2Ol:开始;步骤202:打开网页;步骤203 加载 flash ;步骤204 连接stratus服务器;步骤205:获取唯一的key,建立连接并监听收到的消息(连接名设为 netconnection);步骤206 连接socket服务器;步骤207 socket服务器保存用户名和key ;步骤208 源用户从socket服务器获取目标用户的用户名对应的key ;步骤209 若存在目标用户的key,则执行步骤210 ;否则,转步骤227 ;步骤210 把源用户的用户名和视频通讯的邀请文字组成一个消息通过 netconnection禾口 key发送给目标用户;步骤211 目标用户收到源用户视频邀请的消息;步骤212 判断是否接受,若接受,则执行步骤213 ;否则,执行步骤227 ;步骤213 目标用户通过已建立的netconnection发送一个接受的消息给源用户;步骤214:源用户收到目标用户的接受消息后,在网页上加载一个播放视频的 flash ;步骤215 源用户的视频flash,连接stratus服务器;步骤216 获取唯一的 key,连接名设为 video-l-netconnection ;步骤217 源用户的视频flash,连接socket服务器;步骤218 判断是否连接上,若连接上,则执行步骤219 ;否则,执行步骤232 ;步骤219 将源用户名和key,保存到socket服务器;步骤220 源用户从socket服务器获取目标用户的视频;步骤221 判断是否存在key,若存在,则执行步骤222 ;否则,执行步骤220 ;步骤222 通过video-1-netconnection和目标用户的视频flash的key获取目标用户的视频流,在video控件中播放,并将本地的视频通过该连接发送给目标用户步骤223 在目标用户的网页上加载一个播放视频的flash ;步骤224 目标用户的视频flash,连接stratus服务器;步骤225 获取唯一的 key,连接名设为 video-2-netconnection ;步骤226 目标用户的视频flash,连接socket服务器;步骤227 判断是否连接成功,若是,则执行步骤228 ;否则,执行步骤232 ;步骤228 将目标用户名和key,保存到socket服务器;
步骤229 目标用户从socket服务器获取源用户的视频;步骤230 判断是否存在key,若是,则执行步骤231 ;否则,执行步骤229 ;步骤231 通过video-2-netconnection和源用户的视频flash的key获取源用户的视频流,在video控件中播放,并将本地的视频通过该连接发送给源用户步骤232:结束。 当然,本发明还可有其他多种组合,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种p2p视频通讯的方法,包括以下步骤1)用户访问网页,调用flash接口连接socket服务器,flash连接stratus服务器,取得key,建立连接Netconnection (Netconnection为变量名)并监听收到的消息,Flash将用户的用户名和key发送给socket服务器,socket服务器保存用户的用户名和key,源用户网页中的javascript代码调用flash接口,将包含目标用户的用户名消息发送给socket 服务器,socket服务器接收到源用户发来的消息,返回目标用户的用户名所对应的key给源用户网页中的flash,源用户网页中的flash通过Netcormection和目标用户的key,向目标用户发送一个视频邀请消息,目标用户收到消息后,在目标用户的网页上加载一个用于播放视频的 flash (设置该 flash 名称为 target_video_flash),target_video_flash 连接stratus服务器,取得一个新的key,并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器,目标用户将源用户的用户名发送给socket服务器,socket服务器返回该源用户的用户名所对应的新的key给目标用户的target_Vide0_flaSh,target, video_flash收到socket服务器返回的key后,通过Netconnection连接和key开始播放该key所对应的视频流,同时目标用户将本地的摄像头视频流通过Netcormection连接发送给源用户的flash;2)目标用户通过Netcormection将同意视频通讯的消息发送给源用户;3)源用户收到目标用户同意视频的消息后,在源用户的网页上加载一个用于播放视频的 flash (设置该 flash 名禾尔为 source_video_flash),source—video—flash 连接 stratus 服务器,取得一个新的key,并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器,源用户将目标用户的用户名发送给socket服务器,socket服务器返回该目标用户的用户名所对应的新的key给源用户的source_video_flash,source_video_ flash收到socket服务器返回的key后,通过源用户的Netcormection连接和目标用户的key开始播放该key所对应的视频流,同时源用户将本地的摄像头视频流通过源用户的 Netconnection连接发送给目标用户的flash。
2.如权利要求1所述的方法,其特征在于其中步骤1)包含如下过程1a)用户访问网页,调用flash接口连接socket服务器;lb) Flash stratus服务器,取得key,建立连接 Netcormection (Netcormection为变量名)并监听收到的消息;lc) Flash将源用户的用户名和key发送给socket服务器,socket服务器保存源用户的用户名和key ; Id)源用户网页中的javascript代码调用flash接口,将包含目标用户的用户名消息发送给socket服务器,socket服务器接收到源用户发来的消息,返回目标用户的用户名所对应的key给源用户网页中的flash ;le)源用户的网页中的flash通过Netconnection和目标用户的key,向目标用户发送一个视频邀请消息,目标用户收到消息后,在目标用户的网页上加载一个用于播放视频的 flash (设置该 flash 名称为 target_video_flash),target_video_flash 连接stratus服务器,取得一个新的key,并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器;If)目标用户将源用户的用户名发送给socket服务器,socket 服务器返回该源用户的用户名所对应的新的key给目标用户的target_Vide0_flaSh, target_video_flash收至Ij socket月艮务器返回的key后,通过Netcormection连接禾口 key开始播放该key所对应的视频流,同时目标用户将本地的摄像头视频流通过Netcormection 连接发送给源用户的flash。
3.如权利要求1所述的方法,其特征在于其中步骤3)包含如下过程3a)源用户收到目标用户同意视频的消息后,在源用户的网页上加载一个用于播放视频的flash(设置该 flash 名称为 source_video_flash), source_video_flash 连接 stratus 月艮务器,取得一个新的key,并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器;3b) Socket服务器接收到源用户发来的消息,返回目标用户的用户名所对应的key给源用户的网页中的flash ;3c)源用户的网页中的flash通过Netcormection和目标用户的key,向目标用户发送视频邀请消息;3d)目标用户的flash收到消息后,调用网页上的脚本代码接口,在目标用户的网页上加载一个用于播放视频的flash (设置该flash名称为 target_video_flash) ;3e) target_video_flash 连接 stratus 月艮务器,取得一个新的 key, 并连接socket服务器,将新的key和目标用户的用户名保存到socket服务器;3f)目标用户将源用户的用户名发送给socket服务器,socket服务器返回该源用户的用户名所对应的新的 key 给目标用户的 target_video_flash ;3g) target_video_flash 收到 socket 服务器返回的key后,通过Netcormection连接和key开始播放该key所对应的视频流,目标用户将本地的摄像头视频流通过Netcormection连接发送给源用户的flash,目标用户通过 Netconnection获取视频并输出到目标用户所在客户端的flash显示,同时源用户也通过 Netconnection获取视频并输出到源用户所在客户端的flash显示。
4.如权利要求1所述的方法,其特征在于用户连接stratus服务器,得到用于通讯的 key,网页上用户的flash通过这个key建立连接,建立连接后,目标用户和源用户分别加载一个用于播放摄像头视频的flash,该视频flash分别播放对方的key所对应的视频,并将本地的视频通过该视频flash已建立的连接发送给对方。
5.一种p2p视频通讯的方法,其特征在于用户连接stratus服务器,获得用于通讯的key并根据所述key建立连接;目标用户和源用户分别加载用于播放视频的flash,所述 flash分别播放对方的key所对应的视频。
6.根据权利要求5所述的方法,其特征在于用户通过网页连接socket服务器和 stratus服务器,从所述stratus服务器中获得key并将所述用户的用户名和所述key发送给所述socket服务器;所述用户将包含目标用户的用户名信息发送给所述socket服务器,所述socket服务器返回目标用户的用户名所对应的key给所述用户;所述用户向目标用户发送视频邀请消息,所述目标用户收到所述视频邀请消息后,加载一个用于播放视频的flash ;所述目标用户根据从所述socket服务器中获得的所述用户的key,播放所述key 所对应的视频流。
7.根据权利要求6所述的方法,其特征在于所述目标用户加载一个用于播放视频的 flash,连接到所述stratus服务器,获得一个新的key并连接所述socket服务器,将所述新的key和所述目标用户的用户名保存到所述socket服务器。
8.根据权利要求6所述的方法,其特征在于所述目标用户根据从所述socket服务器中获得的所述用户的key,播放所述key所对应的视频流的同时,目标用户将本地的视频流发送给所述用户。
9.根据权利要求6所述的方法,其特征在于所述目标用户将同意视频通讯的消息发送给所述用户。
10.根据权利要求9所述的方法,其特征在于所述用户根据收到所述目标用户同意视频的消息后,加载用于播放视频的flash根据从所述socket服务器 中获得的所述目标用户的key播放所述key所对应的视频流。
全文摘要
本发明提供了一种p2p视频通讯的方法,属于网络技术领域。方法是用户访问网页,加载flash,网页脚本调用flash接口连接socket服务器。flash连接stratus服务器,取得key,并监听收到的消息。Flash将用户名和key发送给socket服务器保存。源用户flash和目标用户flash通过key直接建立连接。源用户和目标用户分别获取本地摄像头的视频源,通过建立的连接发送给对方,同时获取对方的视频流并显示。该方法能使网页上实现基于p2p的视频通讯,不但大大节省了运营商的带宽成本,同时也极大地改善了用户之间视频通讯的流畅度。
文档编号H04N7/14GK102316149SQ20111006000
公开日2012年1月11日 申请日期2011年3月14日 优先权日2010年7月2日
发明者胡加明 申请人:苏州阔地网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1