OMCS開發手冊(03) -- 多媒體伺服器

來源:互聯網
上載者:User

      前面我們已經詳細介紹了基於OMCS開發網路多媒體應用的用戶端程式所必需掌握的內容,現在我們來看一下OMCS服務端的開發。對於使用者而言,OMCS的服務端就非常簡單了,只要實現一個使用者驗證的介面,掛接到OMCS架構上,就可以了。OMCS多媒體伺服器的主要職責有:

(1)統一管理多媒體裝置的某些公用配置參數。

(2)管理所有線上的OMCS用戶端。

(3)協助OMCS用戶端之間建立P2P通道。

(4)在OMCS用戶端之間轉寄資訊。

 一.MultimediaServer類

      OMCS服務端的核心類是OMCS.Server.MultimediaServer,它將OMCS多媒體服務端的各個組件裝配起來,構成一個整體運行。在二次開發時,我們只要正確地執行個體化MultimediaServer,然後將其宿留任何形式的應用程式中(像WinForm、Windows服務、甚至控制台程式等)即可。所以,作為OMCS使用者,我們只需要關心它的建構函式:

  public MultimediaServer(int port, IUserVerifier userVerifier, OMCSConfiguration config, bool securityLogEnabled, string platformServerIPE)

      port 參數用於指定當前OMCS伺服器通過哪個連接埠提供服務(使用TCP協議)。

      userVerifier 用於驗證登入的用戶端的帳號密碼。如果用戶端提交的帳號密碼不正確,多媒體裝置管理員IMultimediaManager的Initialize方法將拋出異常。OMCS服務端開發唯一需要做的就是實現這個介面。

      securityLogEnabled 參數用於指定是否記錄安全日誌,一般在偵錯工具的時候,將其設為true,而正式發布運行時,將其設為false。

      platformServerIPE 用於設定OMCS群集平台伺服器的地址,在非群集的OMCS系統中,我們可以先忽略它,直接傳入null。

      MultimediaServer類的建構函式中最關鍵的參數是OMCSConfiguration,我們將在下面詳細討論。

二.OMCS多媒體伺服器配置參數

      OMCSConfiguration是多媒體伺服器的最關鍵配置,其類圖如下所示:        

     

(1)音頻:WaveSampleRate 用於設定麥克風的採樣率(8k/16K/32K),預設值我為16000。AudioEncodingQuality 用於設定音頻資料的編碼品質(Low/Middle/High),預設值為High。

(2)視頻:CameraFramerate 用於設定網路攝影機的採集幀頻(1~25),預設值為5。

(3)遠端桌面:DesktopFramerate 用於設定遠端桌面的採集幀頻(1~25),預設值為5。

(4)電子白板:WhiteboardWidth和WhiteboardHeight用於設定電子白板的尺寸(比如800*600,具體取值需要綜合考慮所有guest的螢幕大小)。

       電子白板的尺寸用於限制其可操作地區,超出地區之外的地方,是不能進行繪圖操作的。

(5)SystemToken 用於區分不同的基於OMCS開發的系統,並隔離它們。

       OMCS的用戶端也能設定SystemToken,如果用戶端與服務端的SystemToken的值不一致,則用戶端就無法成功登入到OMCS服務端。

      OMCSConfiguration 對四種多媒體裝置都有對應的參數設定,在用戶端的多媒體裝置管理員初始化之前,多媒體管理器會先從伺服器擷取OMCSConfiguration對象,然後再根據其設定的值初始化本地的各個多媒體裝置。       

三.預設的多媒體伺服器

      如果不需要使用者驗證,可以直接使用OMCS提供的預設的多媒體伺服器OMCS.Server.exe(文末將提供其可執行程式和源碼的下載):

(1)使用IUserVerifier介面的預設實作類別DefaultUserVerifier,其VerifyUser方法始終返回true。

(2)SystemToken的值為""。

       如果需要驗證使用者帳號密碼,或設定SystemToken,則可以將源碼修改一下,實現IUserVerifier介面,並替換DefaultUserVerifier,然後重新發布。

(3)OMCSConfiguration其它項的設定可以在設定檔OMCS.Server.exe.config中進行修改。 

<configuration>  <appSettings>        <!--伺服器監聽的連接埠-->    <add key="Port" value="9900"/>    <!--主表單上是否顯示使用者列表。對於高並發應用,建議關閉該顯示-->    <add key="ShowUserList" value="true"/>    <!--是否記錄安全記錄檔 Omcs.txt-->    <add key="SecurityLogEnabled" value="false"/>        <!--UserID的最大長度-->    <add key="MaxLengthOfUserID" value="11"/>        <!--網路攝影機採集視頻的幀率-->    <add key="CameraFramerate" value="6"/>       <!--音頻編碼品質,Low/Middle/High。-->    <add key="AudioQuality" value="High"/>    <!--音頻採樣率,8000,16000,32000。-->    <add key="WaveSampleRate" value="16000"/>        <!--案頭幀率-->    <add key="DesktopFramerate" value="1"/>      <!--白板寬度-->    <add key="WhiteboardWidth" value="800"/>    <!--白板高度-->    <add key="WhiteboardHeight" value="600"/>          </appSettings></configuration>

       設定檔中除了可以設定OMCSConfiguration相關項目外,還有其它幾個設定項:

(1)Port 用於指定當前OMCS伺服器通過哪個TCP連接埠提供服務。【將被傳入MultimediaServer類的建構函式】

(2)ShowUserList 用於控制採用預設的UI主介面時,是否顯示線上使用者列表。

       一般,只有在調試和測試階段,我們才會開啟顯示使用者列表。因為,當線上使用者數很多時,表單即時重新整理每個使用者的狀態資料,其消耗CPU是不可忽視的。 

(3)SecurityLogEnabled 用於指定是否記錄安全日誌。【將被傳入MultimediaServer類的建構函式】

(4)MaxLengthOfUserID 用於設定用戶端登入帳號的最大長度,預設值為11,如果所需長度大於這個值,必需重新設定。

       而且,用戶端的設定必須同伺服器一致,OMCS用戶端可以通過調用GlobalUtil類的靜態方法SetMaxLengthOfUserID來設定該值。

 

      預設的OMCS.Server.exe以WinForm的形式宿留了MultimediaServer對象。其運行起來後,如所示:

     

      介面上顯示了所有線上的使用者列表,以及伺服器相關的狀態資訊。

      注意:OMCS多媒體伺服器使用了兩個連接埠,一個是通過MultimediaServer的構造參數指定的TCP連接埠,另一個是自動綁定的UDP連接埠(預設為TCP連接埠號碼加1)。

      UDP連接埠是OMCS多媒體伺服器內部整合的P2P伺服器所使用的,用於協助用戶端之間建立P2P通道。

      OMCS.Server.exe有對應的設定檔OMCS.Server.exe.config,我們可以通過修改該設定檔來設定一些參數資訊。       

四.下載

      OMCS多媒體伺服器(帶源碼)。 

      就基於OMCS進行二次開發而言,在我們掌握了概述、多媒體裝置管理員、多媒體連接器、多媒體伺服器這些內容後,就已經足夠了。後面我們會介紹使用OMCS的更多技巧,以及給出更多的demo來示範如何基於OMCS開發網路多媒體應用系統。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.