程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 基於C#分步式聊天系統的在線視頻直播系統設計

基於C#分步式聊天系統的在線視頻直播系統設計

編輯:C#入門知識

視頻在線直播系統:www.hixiu.com;在線聊天系統demo:www.liaofuwu.com


核心系統框架

視頻直播核心系統架構主要包括Web端架構、聊天系統架構、視頻直播、用戶狀態同步架構等。

Web端框架

\

由Nginx組成的前端負載集群,後端由IIS、FPM服務器進行解析。前端將由Nginx集群處理已靜態化頁面及向後端提交未靜態或不做靜態化要求的請求,後端Cached為應用緩存,主要減少對數據庫無意義請求造成的壓力,數據庫架構由一主一備組成(目前暫無備庫)。

聊天系統框架

\

聊天系統分為聊天室(ChatRoom)、消息同步中心(CastServer)、用戶列表(UserList Server)、系統廣播(SystemCast Server)及監控報表(Report)組成。同房間不同服務器之間用戶的消息系統廣播、及用戶列表則通過消息同步中心進行傳遞。用戶連接房間之前由調度中心分配聊天室服務器進行連接。該架構特點是同時在線人數易擴展、可實現負載均衡。

用戶狀態同步機制

\

用戶狀態(Session)的同步機制之所以列為核心,是考慮到用戶消費、充值等行為與非用戶行為造成用戶屬性變更能及時反饋給用戶,此舉能大大提高產品的用戶體驗。該機制主要實現不同框架、不同服務器、不同站點(域名)之間用戶狀態的同步。同步之主要工作由SessionComponents組件完成。

事件

觸發

用戶端反應

是否重發

用戶充值

系統

用戶成功充值後由系統發起系統廣播,通知在線用戶充值成功,並無需刷新帳號金額自動同步。

運營發放庫存及運營幣

系統

無論用戶呆在哪個房間,都能收到該系統消息(目前如果用戶不在線,不能成功接收)

服務器規劃

用途

參考配置

數量

說明

聊天

CPU:4核,內存8G

3-6

含:聊天室、用戶列表、系統廣播(注:服務器要求雙線機房)

Web

CPU:4核,內存:8G

2-4台

站點、充值、接口、資源、活動等服務器

前端

CPU:4核,內存:8G

1-2

Nginx服務器

分步式緩存

CPU:4核,內存:8G

2

Memcached服務器(應用緩存與用戶Session狀態)

數據庫

CPU:8核,內存:16G

2

數據庫服務器,一主一備

流媒體

CPU:8核,內存:16G

1-N

Rtmp服務器

視頻系統

視頻系統主要包含客戶端推流、服務端處理、客戶端接收流三大部份。視頻流暢效果取決於推流端與接收端兩端帶寬,任何一方網絡帶寬問題都會將降低觀看者效果,其中推流端由為重要,其將影響所有人觀看。

視頻插件

\

高清插件由Flash調用的ActiveX控件,只支持以IE為內核的浏覽器調用,適用於主播端。高清插件主要功能有兩個,1、加水印;2、進行高清編碼。

插件代碼片斷

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved