精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
对需求分析过后,绘制了以下方案组成图:
按照需求定义,网络用户使用公司资源进行收听,系统要支持根据收听情况进行计费。
MIS服务器能够进行对系统历史数据的分析,汇总和打印等工作,这个在二期开发。
网页服务器就是当前提供Web和聊天室的服务器。
管理服务器能够对直播服务器上的实时数据进行管理。
电台用户使用客户端访问直播服务器进行收听。
直播服务器对电台用户的收听发送数据,把收听情况进行记录,以进行计费和各类MIS操作,提供实时数据接口给管理服务器,同时也需要网页服务器的配合来选择合适的直播节目给用户。
下面是直播服务器的架构图:
通过用户审核后,接收和下载模块处理数据,中间的协调通过分块缓冲来实现,实时接口能够把处理的各类数据返回给管理服务器,输出各类数据模块提供数据给MIS服务器。
实时接口和输出各类数据模块在二期开发里进行。
客户端和服务器端通过HTTP协议进行握手及数据发送。
通过HTTP协议里扩充成员来指导和控制随后的数据发送。
直播发起者通过定制的HTTP协议处理把自己的数据通过建立的HTTP通道上传。
服务器接收到的直播发起者发送的数据后,进行分块缓冲;块数固定为5个,并对各个数据块进行标数,标数的规则为接收累计次数,所以标数是一直增加的。当直播接收者加入收听后,服务器端软件把缓冲的数据通过接收者与服务器端之间的HTTP数据通道进行发送。各个直播接收者通过各自的计数来保证自己内部数据前后一致。
在分块缓冲里设置可发送要求块数和缓冲预留块数,当从直播发起者接收到足够块数(可发送要求块数)时,才让直播接收者开始接收数据。当直播接收者数据接收的快时,为了让其与直播发送者同步,保留部分块数不让直播接收者快速接收完,这个保留部分块数就叫缓冲预留快数,当直播接收者速度快时,直播发起者保存的数据不够缓冲预留块数时,就让直播接收者等待,这样就达到了同步的目的。
服务器端以多线程架构来完成接收和发送,并提供良好的同步机制保证数据可靠性。
用户审核以简单地对用户名称进行转换再判断来实现。
客户端软件是一个嵌入到页面里的控件。
这个控件有两个状态:听众状态和播音员状态。在两个状态下面都有一个切换状态按钮(类似协议里第二张图上半部分下面的按钮)。听众状态(界面表示如协议里第二张图片上半部分),播音员状态类似第一张图的上半部分。
客户端要能接收网页里对某个用户昵称点击后的信息提取操作,这样才能建立单用户交流。
客户端要能接收网页里对某个直播用户昵称点击后的信息提取操作,这样才能建立直播收听。
客户端控件的界面要求如下:
听众状态:播放按钮,暂停按钮,静音按钮,音量拖动条,音量最大化按钮,当前收听节目,当前节目发起者用户名称,刷新网页显示直播节目按钮,切换状态按钮。
播音员状态:两个本地文件播放器状态和控制窗口,一个录音按钮,一个直播上传按钮,直播节目名称输入框,直播节目描述输入框,直播节目语言选择,直播节目类型选择,切换状态按钮。
网页里某些带有入口信息的链接要能被控件截获,以达到加入单用户交流和加入直播收听的目的。这通过网页控件技术实现。