Anychat即时通讯系统
一、背景
即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。 不容置疑,Internet已经成为真正的信息高速公路。由于Internet的广泛使用,客户与服务器端之间能否有效地进行交互成为我们要解决的问题。从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术,编程实现基于C/S架构的网络聊天工具是切实可行的。作为计算机网络的应用之一聊天工具,受到了用户的普遍普片爱好,它把人们带进了一个虚拟的网络世界,大大的加深了人们之间的联系.从单一的文本聊天,到语音聊天以及到现在的图像,视频聊天,及时短信的发送和在线游戏等功能的开发,已经大大的拓展了聊天工具的概念,它将会作为未来人们通过因特网相互联系和娱乐的主要平台。聊天工具的开发主要用到了网络通信技术,语音的采集,压缩,传输,解压缩以及回放等技术,文件传输技术,Windows的多线程技术以及视频的采集,压缩解压缩技术等。而且在我们生活中已经产生了成熟的这种及时通讯软件。例如:腾讯公司推出的QQ,Microsoft公司推出的MSN等及时通讯软件,给我们的工作,生活,学习带来了极大的便利。但是这些公司都只提供软件的客户端程序免费下载,而不提供其服务器程序,因此对于未与互联网连接的私有网络,这些软件就用不上了
二、概念
AnyChat SDK(AnyChat音视频互动开发平台)是一套跨平台的(*)即时通讯解决方案,基于先进的H.264视频编码标准、AAC音频编码标准与P2P技术,支持高清视频,整合了佰锐科技在音视频编码、多媒体通讯领域领先的开发技术和丰富的产品经验而设计的高质量、宽适应性、分布式、模块化的网络音视频互动平台。
AnyChat音视频互动开发平台(SDK)包含了音视频处理模块(采集、编解码)、流媒体管理模块(丢包重传、抖动平滑、动态缓冲)、流媒体播放模块(多路混音、音视频同步)以及P2P网络模块等多个子模块,封装了底层的硬件操作(音视频采集、播放)、封装了流媒体处理(编解码、网络传输)等非常专业和复杂的技术,为上层应用提供简单的API控制接口,可以在极短的开发周期,以及极少的人力资源投入下为客户的现有平台增加音视频即时通讯、多方会议的功能。
AnyChat SDK分为客户端SDK和服务器SDK两大部分,其中客户端SDK用于实现语音、视频的交互以及其它客户端相关的功能,而服务器SDK主要实现业务层逻辑控制,以及与第三方平台的互联等。客户端SDK和服务器SDK均支持C++、C#、WPF、VB.Net以及Delphi等开发语言和框架。
三、安装部署AnyChat服务器
部署核心服务器流程:
1、安装服务:执行服务器程序目录下的批处理程序:install.bat2、
2、修改配置文件(AnyChatCoreServer.ini):
· 如有授权证书,请将DemoMode改为0,让服务器运行于授权模式下,默认DemoMode=1,表示工作于演示模式;
· 如有SDKFilterPlus插件,请配置好SDKFilterPlus配置项;
3、将对应的证书:AnyChat.cer拷贝到服务器程序所在目录;
4、在“服务”中启动“AnyChat Platform Service”服务;
5、启动服务后,可通过日志文件(AnyChatCoreServer.log)判断服务器是否启动成功,如果启动失败,则会提示相关的出错信息。
(注:如果采用UKey授权,则需要先插入UKey,再启动服务,认证成功之后,UKey指示灯会开始闪烁,服务器退出,或是停止服务后,UKey指示灯会关闭;UKey授权方式需要 4.1.0 .1以上版本服务器程序才能支持)
部署业务服务器流程:
(业务服务器是指采用AnyChatCore Server SDK 开发的服务器,专门用于处理业务流程)
1、修改配置文件(AnyChatCoreServer.ini)
2、从SDK包的bin\ServerSDK目录下拷贝“IPCFilterPlus.dll”库文件到核心服务器目录下
3、重启核心服务器
4、启动业务服务器(AnyChatServerSDK.dll必须和业务服务器在同一个目录下),业务服务器便会收到与核心服务器连接成功的消息。
四、AnyChat SDK的用途
在线真人视频游戏平台(典型案例:盛大棋牌):将AnyChat SDK做为底层的视频引擎,实现打牌的玩家之间可以互相看到视频,可以互相语音聊天,为游戏提供了玩家面对面交流的空间,增强了游戏的用户真实感。
视频会议系统(典型案例:视源互动欣喜):利用AnyChat SDK出色的音、视频表现,为其单机设备提供联网功能,并实现在线视频会议的功能,可以实现不同的设备之间互相音视频交流。
远程教育系统(典型案例:万联教育平台):实现老师与学生之间,以及学生与学生之间的音视频交流。在上课模式下,学生可以看老师的视频、PPT,听老师的讲解,在讨论模式下,可以多个学生同时发言,就热点问题展开讨论。
在线视频聊天系统(典型案例:520Cool连天系统):利用AnyChat SDK的语音、视频功能和P2P网络功能,实现同一个房间内,同时多路视频、多路语音的聊天室,降低对服务器的带宽倚赖。
在线视频直播平台(典型案例:520Cool直播平台):整个网站有多个主播,每个主播向一个频道内的用户进行广播,用户可以看到当前频道内的主播视频,并听到其声音,主播可以与频道内的多个用户进行私聊。
部队远程指挥系统(典型案例:海格部队指挥系统):利用AnyChat SDK提供的视频交互功能,在部队远程指挥系统中实现多个指挥中心在同一大屏幕上同时投影,各指挥中心之间可互相看到对方的实时视频。
即时通讯平台(典型案例:九维多媒体通信):利用AnyChat出色的语音技术,包括回音消除(AEC)、噪音抑制(NS)、自动增益控制(AGC)、静音检测(VAD)等,实现用户之间的超级语音通话与视频互动。