OMCS 开发手册(05) -- 集成与部署OMCS服务器

       如果需要在软件系统中集成OMCS以增加视频通话或视频会议的功能,则需要重点考虑以下几个问题。

1. 服务端的两种集成方式

(1) 在现有的服务端进程中宿主OMCS服务端:只需要在当前的服务端程序中,new一个MultimediaServer实例就可以了,它需要使用一个TCP端口。

(2) 独立部署OMCS框架提供的OMCS服务端程序:独立部署可以最有效的将视讯流量与业务逻辑分离开来,使得业务逻辑的处理不会因为视讯的流量而导致额外的延迟。

2. 关于用户管理

      由于OMCS没有具体的业务逻辑,所以其服务端的用户管理的实质只是标记用户是否在线。这个是OMCS内置的,不需要与现有的系统有任何瓜葛。

      只是一点,MultimediaServer会通过构造函数注入的IUserVerifier接口来验证登录用户的帐号密码是否合法。 

3. 连接状态同步

       通常,集成OMCS之后,在客户端将有两个TCP连接,一个连接(A连接)指向应用服务器(如ESFramework服务器),另一个连接(B连接)指向OMCS服务器。那么,客户端在线或不在线的状态以哪个为准了?常用的有两种策略。 

(1)以应用服务器的连接为主。 

       客户端的状态以A连接为主。比如,当与应用服务器的连接断开时,客户端就显示为“不在线”,当与应用服务器连接成功时,客户端就显示“在线”。 

       如果采用这种策略,那么在编程时,通常会在客户端成功登录了应用服务器之后,才去连接OMCS服务器(即调用IMultimediaManager的Initialize方法),这样就可能存在一个时间间隙 -- 即应用服务器已经连接成功,而OMCS服务器还未连接。 这个间隙的存在又可能会引发新的状况:如果在这个间隙,其它Guest要访问当前客户端的多媒体设备,就会返回TargetUserOffline的结果而连接失败。发生这种情况时,作为guest的客户端用户就会很纳闷:明明看到对方已经上线了,然而,连接对方的多媒体设备,却返回TargetUserOffline,是怎么回事了?针对这种新的状况,我们可以将连接器的WaitOwnerOnlineSpanInSecs属性设为一个稍大的值,比如10秒,以等待作为Owner的客户端的多媒体管理器初始化成功。 

(2)兼顾应用服务器连接与多媒体服务器的连接 

       我们也可以使用更保险的策略,即只有A连接和B连接都正常时,客户端才“在线”。只要其中任何一个连接断开时,客户端状态就变为“不在线”。这样,就不会出现上面因状态不同步的间隙而出现的状况了。  

       策略(1)和(2)各有优劣。使用策略(1),客户端的登录会快一些,但是会有两个连接状态不一致而出现的种种问题;策略(2)不会出现连接不一致的问题,但是登录就会慢一些,因为要两个连接都成功,且多媒体管理器初始化完成才算进入“在线”状态。 当然,除这两个常用的策略之外,我们也可以根据项目的具体需求,采用更适合自己的方案。      

       就我们的经验而言:以A连接为主连接,即以A连接的状态作为当前客户端是否在线的依据。当A连接断开时,表示客户端离线,此时应主动断开B连接。 

 

 

下一篇:OMCS 开发手册(06) -- 分离信道

上一篇:OMCS 开发手册(04) -- 二次开发流程

--------------------------------------------------------------------------------------------------------------------  

下载免费版本的OMCS以及 demo源码

阅读 更多OMCS开发手册系列文章

Q Q:168757008

官网: www.oraycn.com

导航

首页

官方网站

立即咨询 

站内搜索

ESFramework 通信框架

详细说明

SDK下载

ESFramework FAQ

版本变更记录

OMCS 语音视频框架

详细说明

SDK下载

OMCS FAQ

版本变更记录

OrayTalk 企业即时通讯系统

详细说明

客户端下载

傲瑞实用组件

SDK下载

NPush 消息推送组件

StriveEngine 轻量级的通信引擎

MFile 语音视频录制组件

MCapture 语音视频采集组件

MPlayer 语音视频播放组件

OAUS 自动升级系统

傲瑞组件 FAQ

授权

授权流程

产品授权说明

产品选购指南

授权SDK使用说明

其它

SDK使用技巧

联系我们

电话:027-87638960

Q Q:168757008

邮件:master@oraycn.com