基于HTTP的点对点广播
来源:互联网 发布:mac安装java开发环境 编辑:程序博客网 时间:2024/06/07 02:18
本文是我一年前做一个p2p解决方案的时候写的,现在翻出来有些基本概念已经忘记了,才知道以前竟然还做过这个,惊讶中啊:
简介:
此方案由开放源代码项目P2P-Radio修改而成,(P2P-Radio是一个点对点音频和视频广播系统,功能有freeloader检测,流式传输,SHOUTcast 支持,一个易于使用的GUI,以及一个单独的监视应用程序来显示当前P2P网络的结构。-----------摘自P2P-Radio项目文档)下图展示了一般网络结构:
该框架安排有一个监控模块,每个加入此P2P网络的节点都会在此模块有所表示从而全面展示了全网结构
工作原理:
1. 虚拟资源服务器启动,随即从真实资源所在地下载流数据。
2. 虚拟资源服务器启动TCP/UDP守护收发线程,等待客户连接。
3. 如果使能监控,则虚拟资源服务器第一个加入到监控服务的树形结构中。
4. 客户连接虚拟资源服务器,同时客户启动一个接收线程,实时接收媒体流并载入本地缓存,同时客户要启动同上虚拟资源服务器一样的TCP/UDP收发线程,这样它便可以作为资源提供者服务其它节点,如果使能监控,则每个连接节点都会作为被连接节点的子节点加入监控树形结构。
5. 如果使能监控,数据的每次传输以及发生的每个事件(如加入,退出,重定向等)都会在树形结构有所体现,并打印日志。
6. 默认地,代码中会启动本机默认播放器播放流媒体,但是也可以通过Web方式用浏览器插件播放,因为流媒体本身就是在http上传输的,这将非常方便。
优点:
音视频流在http上传输,点对点传输。对于播放实时流媒体可以节省大量带宽。网络拓扑监控与数据传输分离,有利于扩展。
缺点:
必须有资源服务器,因此存在资源服务器处的带宽瓶颈
测试
经过测试在局域网中性能很好,具体方案如下:
一台主机充当虚拟资源服务器,将资源从真正的服务器下载到本地缓存,连续下载,基于时间戳实时更新流数据,局域网内其他主机中的一台连接此虚拟资源主机,另外的主机可以随意彼此连接。
1. 节点1:ip-10.2.1.56,port-2000, 虚拟资源服务器 à 远程主机的音频
2. 节点2:ip-10.2.1.65,port-2000, 一般节点 à 节点1
3. 节点3:ip-10.2.1.62,port-2000, 一般节点 à 节点2
4. 节点4:ip-10.2.1.56,port-2490, 一般节点 à 节点3
5. 节点5:ip-10.2.1.62,port-2490, 一般节点 à 节点4
6. 节点6:ip-10.2.1.56,port-12533,一般节点 à 节点2
7. 节点7:ip-10.2.1.65,port-2490, 一般节点 à 节点3
8. 在节点2用windows media player打开http://10.2.1.62:2490/stream.mp3
9. 节点7自动打开windows media player播放http://10.2.1.62:2001/stream.mp3
以上测试通过,播放流畅,不足之处在于音乐有些走调,不知原因,解决中,另外就是偶尔有爆破音,不能确定原因,解决中。
- 基于HTTP的点对点广播
- 基于spring websocket实现广播及点对点推送功能
- 一种基于局域网的点对点语音通信
- 一种基于局域网的点对点语音通信
- 种基于局域网的点对点语音通信
- 基于TCP协议的点对点通信java程序,带图形界面
- 基于webrtc的点对点多摄像头视频监控demo
- [ActiveMQ实战]基于JMS的点对点消息传播
- 基于spring整合activeMQ以及点对点队列的封装
- 基于UDP协议的广播程序实例
- 基于UDP广播的局域网聊天工具
- 基于UDP协议的广播服务
- Qt---基于UDP的网络广播程序
- Qt--基于UDP的网络广播
- 基于UDP广播的回射服务器
- 点对点的即时通讯模型
- activeMq的点对点发送
- 点对点通讯:基于即连即用的双向多次Socket信息传输程序
- strstr的各种实现--从strlen的实现谈起
- 智能指针的设计
- about my way
- 笔试题--反转一个字节
- 一道笔试题--求二进制数1的个数
- 基于HTTP的点对点广播
- elf签名和可执行文件签名
- MS-CRT的malloc以及MS的HeapAlloc--本质基础上的改进
- AT&T的malloc实现--malloc的基础和本质
- glibc的malloc--更多的改进
- 使用openssl的认证机制完成版本控制
- 中国没有城市
- C的中断和反码数据存储
- 读《莱昂氏UNIX源代码分析》