王濤 劉楊 僧德文
【摘 要】隨著時代快速發展,衍生出直播行業,本應用就依托直播的方式,以App的形式呈現,致力于打造分享生活的直播內容。本文首先介紹了基于Node的直播平臺研究背景與意義;其次,對系統的總體設計做了具體的描述;再次,概括了項目實施方案及階段分析。
【關鍵詞】Egg;uni-app;Socket.io;MySQL;直播
1 研究背景及意義
追溯直播的發展歷程,可以看出直播平臺的依托方式在不斷的拓展到移動終端上面,并且直播內容也在慢慢的發展出新的方向,但是到目前為止市場上屹立的產品涵蓋內容都非常廣泛,并沒有出現專注于分享生活和世界的產品出現,因此,致力于打造一個同他人分享生活的產品就呼之欲出。本設計選擇Node來進行系統開發,將產品依托于移動智能終端,隨時隨地可以感受別人分享的生活。
在產品層面,專注于分享生活,利用最直接的形式給他人展示這個世界的容貌以及生活方式,讓別人沒走出去也能觀賞到大自然美麗的風光以及他人的生活方式,仿佛身臨其境的感覺。
在技術層面,采用Node作為依托,通過目前已經比較成熟的WebSocket技術實現直播效果,支持多人觀看直播和交流。
對于市場而言,可以根據當前市場缺口,去開發符合大眾需求的平臺,專注于某一板塊,這無疑是直播未來的一個發展方向;例如直播帶貨的模式,這樣一個符合大眾需求的模式就是未來直播的方向。
2 系統總體設計
基于Node的直播平臺設計與實現的總體設計采用B/S和C/S架構的結合,App端使用uni-app框架進行開發,后臺管理系統使用Egg框架的服務端渲染進行開發,服務端采用Egg框架配合MySQL進行開發。針對實時通信,采用了Socket.io的WebSocket+長輪詢方式。
在整個結構中,分離出App和后臺管理系統兩個應用:App采用的技術棧屬于前后端分離,后臺管理系統則使用服務端渲染,前后端不分離,這樣的設計有利于項目的快速推進,保證服務端API的統一管控。
3 系統詳細設計
(1)登錄注冊模塊
該模塊是系統的最基本的也是必備的功能。管理端只設計了登錄實現,采用session的架構,在數據庫中添加一個超級管理員,通過超級管理員來對整個系統進行操作。頁面具體實現采用Flex布局實現自適應布局,Flex在移動端的適配比較好,利用其動態變化的特性來適配不同的機型。
(2)用戶模板
該模塊主要是提供系統的用戶成員管理,系統中的用戶分為普通用戶和管理員兩種身份:普通用戶可以進行直播的觀看和開啟直播,實時刷新直播內容,共享內容等;管理員用戶可以進行用戶信息的管理以及直播間的信息管理等
(3)直播間模塊
該模塊時系統最重要的模塊,實現用戶的觀眾功能、主播功能。用戶作為觀眾,需要能自主選擇直播間,并且能夠自主轉換,打賞等。用戶作為主播,需要能夠與觀眾互動,查看粉絲列表等功能。
(4)實時通信模塊
當App激活時,就直接于服務端進行socket連接建立,監聽connect(連接)、online(實時在線列表)、commit(實時彈幕)、gift(實時禮物)、disconnect(斷開連接)這幾個事件;當服務端響應的時候就執行對應的操作實時刷新。
服務端采用egg-socket.io這個插件,在配置中將信息配置完成,啟動服務與客戶端建立socket連接,當用戶執行對應的操作時去響應客戶端監聽的事件,從而觸發刷新。但是在響應之前,都需要對用戶身份信息進行驗證,只有驗證通過的用戶才可以接著執行。
4 項目實施方案
基于Node的直播平臺設計與實現方案包括以下主要研究和開發內容:對本項目直播平臺的整體設想及策劃;直播平臺的設計與實現的具體實施方法和技術措施;針對本項目的特點和難點分析及解決措施。
(1)項目初級階段:進行項目相關資料的收集、整理,對項目形成初步全局化概念,開展充分的需求調研,了解目前工作的痛點、亮點以及創新點。
(2)項目設計階段:對需求調研報告充分分析,確定項目想要到達的預期目標,按要求完成直播平臺的總體架構塑造及功能模塊的具體方案。
(3)項目開發階段:對各個模塊功能系統化,按照要求完成各功能模塊的代碼實現,并集成每個分模塊實現Node的直播平臺設計與實現的整體開發及調試應用。
(4)系統測試階段:分別對單個分模塊及集成系統進行系統測試,生成對應測試用例和測試報告。
(5)系統測試驗收階段:包括驗收測試、系統試運行、系統文檔驗收以及項目驗收。驗收測試即對系統進行全面的測試,依照雙方合同約定的系統環境,以確保系統的功能和技術設計滿足建設方的功能需求和非功能需求;系統試運行期間主要包括數據分析、日常維護以及缺陷跟蹤和修復等方面的工作;系統經過驗收測試后,系統的文檔逐步、全面的交給客戶;在系統經過試運行以后的約定時間,雙方啟動項目的最終驗收工作。
5 總結
本文結合當前網絡直播的發展方向,結合使用網絡直播必要相關技術,開發了一款直播系統。為了使系統能夠跟上時代發展的步伐,同時也為系統能夠滿足網絡直播的需求,本文針對網絡直播的現狀進行分析,針對直播中所存在的不足進行設置,從而優化在目前網絡直播中存在的不足。在設計部分,為了給用戶提供完整的功能應用,本文針對系統各項技術以及各項功能進行了詳細的設計,從而能夠解決直播中的具體問題。
參考文獻:
[1]萬里晴,楊浩.探究基于V8引擎的Node.js在各應用領域的發展[J].通訊界,2015(13):97.
[2]黃揚子.基于NodeJS平臺搭建REST風格Web服務[J].無線互聯科技,2015(16):57-59.
[3]肖在昌,楊文暉,劉兵.基于WebSocket的實時技術[J].電腦與電信,2012(12):40-42.
[4]沈劍翹,陳澤椿.Vue.js在構建系統前端SPA的應用[J].科技創新與應用,2020(03):181-182.
[5]呂英華.漸進式JavaScript框架Vue.js的全家桶應用[J].電子技術與軟件工程,2019(22):39-40.
[6]張大衛.我國網絡直播行業現狀分析[J].電視研究,2017(12):43-45.