版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Go的流媒體視頻網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)基于Go的流媒體視頻網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)摘要 本文講述了基于Go的流媒體視頻網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)。開(kāi)發(fā)這套流媒體視頻網(wǎng)站能讓用戶無(wú)論在視頻點(diǎn)播還是視頻的上傳下載都有一種完美的用戶體驗(yàn),對(duì)于高并發(fā)的場(chǎng)景可以輕松面對(duì)。 本系統(tǒng)采用了GoLand2019.1.3和WebStrom3.2作為前后端開(kāi)發(fā)工具,選用Mysql8.0.15作為后臺(tái)數(shù)據(jù)庫(kù)。該系統(tǒng)包含了5個(gè)主要功能模塊有:視頻點(diǎn)播模塊,視頻管理模塊,用戶評(píng)論模塊,用戶管理模塊,流控模塊。后端采用Golang語(yǔ)言實(shí)現(xiàn),以及所提供優(yōu)良的nativehttp庫(kù)實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求。采用模塊化設(shè)計(jì),API對(duì)接前端服務(wù),后端分為Streaming和Scheduler模塊處理相應(yīng)事務(wù)。前端采用Vue.js前端框架,結(jié)合Element-Ui對(duì)后端返回的JSON數(shù)據(jù)做處理展示。用戶通過(guò)本網(wǎng)站注冊(cè)、注銷(xiāo)、退出賬號(hào),登錄用戶可以上傳、刪除等管理自己的視頻。游客與登錄用戶可以觀看其他人上傳的視頻,并可以評(píng)論。關(guān)鍵詞:B/S架構(gòu);前后端分離;MVC;流媒體點(diǎn)播系統(tǒng)
DesignandImplementationofStreamingVideoWebsiteAbstractThispaperdescribesthedesignandimplementationofastreamingvideowebsitebasedonGo.Thedevelopmentofthisstreamingmediavideowebsiteallowsuserstohaveaperfectuserexperienceinbothvideo-on-demandandvideouploadanddownload,andcaneasilyfacehigh-concurrencyscenarios.ThissystemusesGoLand2019.1.3andWebStrom3.2asthefront-enddevelopmenttools,andMysql8.0.15astheback-enddatabase.Thesystemcontains5mainfunctionalmodules:videoondemandmodule,videomanagementmodule,usercommentmodule,usermanagementmodule.ThebackendisimplementedinGolanglanguage,andtheexcellentnativehttplibraryisprovidedtoimplementnetworkrequests.Modulardesignisadopted,andtheAPIconnectstothefront-endservices.Theback-endisdividedintoStreamingandSchedulermodulestohandlethecorrespondingtransactions.Thefront-endusestheVue.jsfront-endframework,combinedwithElement-UitoprocessanddisplaytheJSONdatareturnedbytheback-end.Userscanregister,logout,andlogoutthroughthiswebsite,andthelogged-inusercanupload,delete,etc.tomanagetheirownvideos.Visitorsandlogged-inuserscanwatchvideosuploadedbyothersandcancomment.Keywords:B/Sarchitecture;front-endandback-endseparation;MVC;streamingmediaon-demandsystem.
目錄1緒論 71.1課題背景與研究意義 71.1.1課題背景 71.1.2研究意義 81.2國(guó)內(nèi)外流媒體視頻點(diǎn)播行業(yè)的發(fā)展概況 91.2.1國(guó)內(nèi)流媒體視頻點(diǎn)播行業(yè)發(fā)展現(xiàn)狀 91.2.2國(guó)外流媒體視頻點(diǎn)播行業(yè)發(fā)展現(xiàn)狀 92可行性分析 102.1技術(shù)可行性分析 102.2經(jīng)濟(jì)可行性分析 102.3操作可行性分析 102.4法律可行性分析 103需求分析 113.1系統(tǒng)設(shè)計(jì)目標(biāo) 113.2業(yè)務(wù)流程分析 123.3系統(tǒng)用例 133.3.1游客用例分析 133.3.2登錄用戶用例分析 153.4功能性需求分析 183.5非功能性需求分析 194概要設(shè)計(jì) 204.1系統(tǒng)模塊總體設(shè)計(jì) 204.2系統(tǒng)功能模塊圖 214.3數(shù)據(jù)庫(kù)設(shè)計(jì) 215詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 265.1系統(tǒng)的運(yùn)行環(huán)境 265.2相關(guān)技術(shù)簡(jiǎn)介 275.2.1Golang編程語(yǔ)言簡(jiǎn)介 275.2.2Vue.js前端框架簡(jiǎn)介 275.2.3Axios技術(shù)簡(jiǎn)介 285.2.4Element-UI網(wǎng)站快速成型工具 285.3系統(tǒng)首頁(yè)設(shè)計(jì) 285.4系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn) 295.4.1用戶管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 295.4.2流媒體視頻點(diǎn)播模塊的設(shè)計(jì)與實(shí)現(xiàn) 305.4.3視頻管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 315.4.4用戶評(píng)論模塊的設(shè)計(jì)與實(shí)現(xiàn) 335.4.5流控模塊的設(shè)計(jì)與實(shí)現(xiàn) 346系統(tǒng)測(cè)試 356.1軟件測(cè)試簡(jiǎn)介 356.2測(cè)試原則 356.3測(cè)試需求 356.4測(cè)試用例 366.5單元測(cè)試 386.6集成測(cè)試 396.7系統(tǒng)測(cè)試 396.8驗(yàn)收測(cè)試 40結(jié)論 40參考文獻(xiàn) 41謝辭 42
1緒論1.1課題背景與研究意義1.1.1課題背景 隨著我國(guó)社會(huì)消費(fèi)水平的提高,人們?cè)絹?lái)越重視生活?yuàn)蕵?lè),因此流媒體視頻點(diǎn)播市場(chǎng)得到了極大的拓展,為流媒體視頻產(chǎn)業(yè)的發(fā)展創(chuàng)造了許多有利的條件。流媒體的出現(xiàn)之前,如果人們想從網(wǎng)絡(luò)看視頻和聽(tīng)音樂(lè),他們必須下載視頻和音頻文件的計(jì)算機(jī)存儲(chǔ)才能點(diǎn)擊播放,不僅浪費(fèi)了下載時(shí)間和硬盤(pán)空間,而且也不能滿足消費(fèi)者的便利和確切的需要。流媒體視頻點(diǎn)播的發(fā)展克服了許許多多的不足之處。流媒體視頻一般指的是視頻文件的傳輸以及各種各樣壓縮技術(shù),將影像信息放置在系統(tǒng)的后臺(tái)服務(wù)器上進(jìn)行處理以及壓縮等等,以此使用戶可以在線上觀看,從而再也不用等待整個(gè)壓縮文件下載到個(gè)人計(jì)算機(jī)上??梢哉f(shuō)流媒體視頻點(diǎn)播的技術(shù)是起源于寬帶互聯(lián)網(wǎng)時(shí)代,因經(jīng)濟(jì)得以發(fā)展,人們愈發(fā)渴望某種新型的網(wǎng)絡(luò)科技來(lái)相互通信,自90年代以來(lái),一家名為ProgressiveNetWorks的美國(guó)公司就成立了,Media在當(dāng)時(shí)的互聯(lián)網(wǎng)上正式宣布發(fā)布,當(dāng)時(shí)他們推出了一款新型的RealAudioC/S音頻接收系統(tǒng),更是在這之后的幾年間遵循了網(wǎng)絡(luò)流媒體技術(shù)的發(fā)展趨勢(shì)。在一九九七年的九月份的時(shí)候,這所企業(yè)改名為RealNetworks,并且前前后后的推出了RealPlayer系列流行的流媒體視頻點(diǎn)播的播放器,在其最繁華最好的時(shí)候,它在該領(lǐng)域的市場(chǎng)份額一度超過(guò)了百分之八十五之多,RealNetworks是流媒體視頻點(diǎn)播的真正祖先。但在那之后,微軟公司和蘋(píng)果公司看到了流媒體視頻點(diǎn)播行業(yè)的巨大潛力。一方面,它強(qiáng)大的競(jìng)爭(zhēng)攻勢(shì)讓現(xiàn)實(shí)新聞感到了危機(jī)的存在,再者,從另一個(gè)方面去看,它也在不知不覺(jué)中推動(dòng)了流媒體視頻點(diǎn)播的長(zhǎng)遠(yuǎn)進(jìn)步,這使得流媒體視頻點(diǎn)播的飛速進(jìn)步扎根人心。在早些時(shí)候,流媒體視頻的點(diǎn)播主要是應(yīng)用在窄帶互聯(lián)網(wǎng)上。由于帶寬速度條件的各種各樣制約以及其局限性,直到二十世紀(jì)九十年代末,人們卻還只能在互聯(lián)網(wǎng)上看到一個(gè)很非常非常小的流媒體視頻的播放窗口。在千禧年下半年,再者因互聯(lián)網(wǎng)的全球性的飛速進(jìn)步,寬帶不再是一個(gè)夢(mèng)想。作為流媒體視頻點(diǎn)播技術(shù)的領(lǐng)頭羊,微軟、蘋(píng)果等美國(guó)公司近乎處于相同的時(shí)間向全世界推出了它們最新的流媒體視頻點(diǎn)播技術(shù)的寬帶解決方案??梢钥闯?,在極其短暫的時(shí)間內(nèi),流媒體技術(shù)取得了騰飛。在貳零零四年的時(shí)候,我們可以看到流媒體的發(fā)展,我們還可以在互聯(lián)網(wǎng)上進(jìn)行全方位的視聽(tīng)接觸,真正的實(shí)現(xiàn)了一個(gè)人坐在一個(gè)房間里,環(huán)游世界。1.1.2研究意義因信息社會(huì)實(shí)現(xiàn)了騰飛,流媒體視頻點(diǎn)播的技術(shù)在互聯(lián)網(wǎng)媒體傳播中起著領(lǐng)頭羊的作用。包括但不限于例如流媒體視頻的點(diǎn)播或者遠(yuǎn)程的教育的新型模式,以及企業(yè)中應(yīng)用廣泛的視頻會(huì)議、或者是當(dāng)下紅極一時(shí)的直播,誕生了許多網(wǎng)紅,線上新聞信息發(fā)布,大大縮短民眾獲取資訊的時(shí)間,最后是互聯(lián)網(wǎng)廣告等應(yīng)用空前廣泛,刺激了消費(fèi),拉動(dòng)了經(jīng)濟(jì)的發(fā)展,更是方便了人們的在全世界的信息的互換和情感的交流。流媒體視頻的點(diǎn)播已然成為不僅僅國(guó)外,甚至是在我國(guó)國(guó)內(nèi)寬帶建設(shè)中比重相當(dāng)大的領(lǐng)域之一,大多數(shù)的群體對(duì)于這些流媒體點(diǎn)播的技術(shù)在將來(lái)發(fā)展普遍持積極樂(lè)觀想法。并且互聯(lián)網(wǎng)的巨頭們表示,因互聯(lián)網(wǎng)的用戶激烈增長(zhǎng),企業(yè)們更是要把握當(dāng)下時(shí)機(jī)探索流媒體點(diǎn)播的科技技術(shù)的發(fā)展。流媒體視頻的點(diǎn)播技術(shù)搖身一變,儼然已經(jīng)占據(jù)互聯(lián)網(wǎng)不可或缺的部分,進(jìn)而發(fā)動(dòng)了互聯(lián)網(wǎng)對(duì)于整體的結(jié)構(gòu)的革命,促進(jìn)了信息經(jīng)濟(jì)的騰飛。在這幾年期間,流媒體點(diǎn)播的技術(shù)更是應(yīng)用在全球的各個(gè)角落。較為引人注目的是在壹九九五年的時(shí)候,劃時(shí)代的互聯(lián)網(wǎng)流媒體播放器的問(wèn)世,流媒體視頻的點(diǎn)播在因特網(wǎng)的應(yīng)用呈現(xiàn)直線的激增。在國(guó)際上,各種各樣的權(quán)威機(jī)構(gòu)正在對(duì)流媒體視頻的點(diǎn)播進(jìn)行全面的深入調(diào)查。僅僅在千禧那年,在線觀看流媒體視頻的人數(shù)就爬升了六十五個(gè)百分點(diǎn)。而在網(wǎng)絡(luò)科技成熟而又發(fā)達(dá)的西方,這些流媒體視頻點(diǎn)播的接入量?jī)叭桓咧烈粌|多,大概占領(lǐng)了互聯(lián)網(wǎng)的用戶數(shù)量規(guī)模的1/3。而在亞洲大陸,這一數(shù)字的規(guī)模呈現(xiàn)爆發(fā)式的增加至少到達(dá)兩千余萬(wàn)了,達(dá)到了因特網(wǎng)使用者的1/9。隨著用戶的增長(zhǎng),視頻流媒體的技術(shù)在互聯(lián)網(wǎng)上的應(yīng)用逐年顯著增加。到目前來(lái)看,流媒體視頻點(diǎn)播的市場(chǎng)營(yíng)收能力已展示其無(wú)比雄厚的潛能。這龐大的蛋糕吸引了無(wú)數(shù)的企業(yè)家爭(zhēng)先恐后的競(jìng)爭(zhēng)。在這數(shù)年來(lái),Apple等眾多之明企業(yè)對(duì)外宣布成立互聯(lián)網(wǎng)流媒體聯(lián)盟,目的是一起加速發(fā)展流媒體的市場(chǎng)以及優(yōu)化改變當(dāng)下格局,并且制定了與之對(duì)應(yīng)的標(biāo)準(zhǔn)和各種所要執(zhí)行的協(xié)議。也是當(dāng)時(shí),全球范圍內(nèi)流媒體的市場(chǎng)和競(jìng)爭(zhēng)態(tài)勢(shì)逐漸明朗。該如何在這個(gè)市場(chǎng)上獲得更大的蛋糕份額已經(jīng)變?yōu)樵S許多多的企業(yè)家關(guān)注的焦點(diǎn)。西放國(guó)家的廠商涌入促進(jìn)了我們中國(guó)流媒體市場(chǎng),使得其發(fā)展愈發(fā)繁榮,不過(guò)競(jìng)爭(zhēng)也會(huì)愈發(fā)激烈。從現(xiàn)今來(lái)看,對(duì)我國(guó)的流媒體視頻點(diǎn)播領(lǐng)域的影響更是積極向上的。目前大多數(shù)的網(wǎng)站是基于Java的Springboot框架或Python的Flask框架設(shè)計(jì)實(shí)現(xiàn)的。這些主流技術(shù)集成度較高,不易于了解底層,且編譯之后不是機(jī)器語(yǔ)言或是解釋型語(yǔ)言,運(yùn)行效率偏慢,對(duì)于高并發(fā)的處理略微偏弱或者需要引入第三方庫(kù)才能得以實(shí)現(xiàn)。本人開(kāi)發(fā)的流媒體視頻網(wǎng)站目標(biāo)是讓用戶在視頻點(diǎn)播和視頻上傳下載兩方面都擁有完美的用戶體驗(yàn),并且可以輕松面對(duì)高并發(fā)的場(chǎng)景。1.2國(guó)內(nèi)外流媒體視頻點(diǎn)播行業(yè)的發(fā)展概況1.2.1國(guó)內(nèi)流媒體視頻點(diǎn)播行業(yè)發(fā)展現(xiàn)狀 據(jù)權(quán)威機(jī)構(gòu)的調(diào)查結(jié)果顯示截至貳零一四那一年,中國(guó)的流媒體視頻點(diǎn)播的用戶的人數(shù)已經(jīng)高至四億有余,同比上升二十六點(diǎn)八個(gè)百分點(diǎn),更擁有百分之五十六點(diǎn)二的網(wǎng)民有使用流媒體視頻網(wǎng)站的習(xí)慣,龐大的群體刺激了國(guó)內(nèi)流媒體視頻網(wǎng)站的行業(yè)發(fā)展,這些年來(lái),騰訊視頻、愛(ài)奇藝、優(yōu)酷、Bilibili等流媒體網(wǎng)站如雨后春筍般,并呈現(xiàn)不斷增長(zhǎng)的態(tài)勢(shì)。從2006年開(kāi)始,我國(guó)第一個(gè)流媒體網(wǎng)站誕生后到現(xiàn)在僅僅十余年,但其在段時(shí)間內(nèi)的發(fā)展卻十分的驚人。流媒體網(wǎng)站依托于互聯(lián)網(wǎng)、移動(dòng)手機(jī)等新生媒體,在短時(shí)間內(nèi)得到了質(zhì)的提升。 相對(duì)于國(guó)外,我國(guó)流媒體網(wǎng)站的發(fā)展起步還是稍微較晚,且視頻質(zhì)量殘次不齊,以低質(zhì)視頻追逐高點(diǎn)擊率?;蛘咭曨l資源的同質(zhì)化現(xiàn)象嚴(yán)重,除部分專(zhuān)業(yè)化視頻網(wǎng)站在內(nèi)容上做得比較突出之外,其他得在視頻資源方面的個(gè)性化優(yōu)勢(shì)得不到凸顯。1.2.2國(guó)外流媒體視頻點(diǎn)播行業(yè)發(fā)展現(xiàn)狀 相對(duì)于國(guó)內(nèi)流媒體視頻,西方的流媒體行業(yè)發(fā)展的時(shí)間更早,誕生了許許多多非常著名的流媒體視頻網(wǎng)站,如:YouTube、Netflix、Vimeo、Dailymotion等等數(shù)不勝數(shù),而最具代表性的網(wǎng)站是Youtube和Netflix。在全球范圍內(nèi)都有龐大的用戶,也基于用戶數(shù)量龐大的原因,優(yōu)質(zhì)的視頻資源相對(duì)于國(guó)內(nèi)也比較多,尤其是國(guó)內(nèi)所被詬病的原創(chuàng)視頻的數(shù)量。 相對(duì)于國(guó)內(nèi),西方流媒體視頻是以訂閱數(shù)為主要盈利方式。在貳零一七年,Netfli與和HBO的收入分別為將近十二億美元和六十三億美元有余。訂閱收入的增長(zhǎng)率分別為百分之五十八和百分之十點(diǎn)六。但是在Netflix在DVD租賃業(yè)務(wù)卻呈現(xiàn)斷崖式的下跌態(tài)勢(shì)。Netflix自二零一一年將會(huì)全面向流媒體視頻點(diǎn)播的業(yè)務(wù)的轉(zhuǎn)型,更是借助行業(yè)的發(fā)展紅利和自身優(yōu)異的經(jīng)營(yíng)布局的能力不斷向其他的國(guó)家擴(kuò)張市場(chǎng)份額,其渠道的優(yōu)勢(shì)和全球分發(fā)的能力也逐漸顯現(xiàn)。2可行性分析2.1技術(shù)可行性分析技術(shù)上的可行性的分析主要指的是用技術(shù)的眼光分析目前的技術(shù)水平和能力是否可以順利完成所分配的開(kāi)發(fā)工作任務(wù),以及硬件的配置和軟件的配置、各類(lèi)技術(shù)人員的數(shù)量、水平等能否充分的滿足開(kāi)發(fā)任務(wù)工作的的需求。 我所要開(kāi)發(fā)的流媒體視頻點(diǎn)播系統(tǒng)主要是處理視頻流數(shù)據(jù),以當(dāng)下的計(jì)算機(jī)硬件以及軟件和個(gè)人能力,可以滿足系統(tǒng)的開(kāi)發(fā)與運(yùn)行。本流媒體視頻網(wǎng)站前端采用Vue.js框架以及Element-UI的GUI組件庫(kù)、后端采用Golang作為開(kāi)發(fā)語(yǔ)言,以及開(kāi)源項(xiàng)目Httprouter作為后端HTTP路由、后臺(tái)數(shù)據(jù)庫(kù)采用Mysql、在前端使用Axios向后端服務(wù)器發(fā)起API請(qǐng)求,并通過(guò)JSON格式返回?cái)?shù)據(jù)。2.2經(jīng)濟(jì)可行性分析經(jīng)濟(jì)的可行性分析旨在,例如開(kāi)發(fā)本流媒體視頻點(diǎn)播網(wǎng)站所投入的資金和開(kāi)發(fā)完成后,本流媒體視頻點(diǎn)播網(wǎng)站系統(tǒng)投入使用后所帶來(lái)的經(jīng)濟(jì)收益進(jìn)行對(duì)比和分析,確認(rèn)所開(kāi)發(fā)的系統(tǒng)是否會(huì)給企業(yè)帶來(lái)一定的經(jīng)濟(jì)收益。隨著生活水平的提高,人們?cè)絹?lái)越注重娛樂(lè)生活的質(zhì)量,對(duì)于娛樂(lè)的需求日益增大,與之對(duì)應(yīng),流媒體的發(fā)展也越顯重要。流媒體視頻點(diǎn)播網(wǎng)站是一個(gè)可以直接產(chǎn)生經(jīng)濟(jì)效益的投資,不僅可以通過(guò)訂閱的模式為視頻的創(chuàng)作者帶來(lái)創(chuàng)收,廣告收費(fèi)模式也推動(dòng)了其他產(chǎn)業(yè)的發(fā)展。2.3操作可行性分析 本流媒體視頻點(diǎn)播網(wǎng)站采用B/S架構(gòu)實(shí)現(xiàn),只需要通過(guò)瀏覽器就能訪問(wèn)本系統(tǒng)。用戶面向全年齡段人群,因此操作十分簡(jiǎn)便,只需要使用瀏覽器即可。界面采用Element-UI組件庫(kù),設(shè)計(jì)簡(jiǎn)約、友好,用戶可以在短時(shí)間掌握該流媒體視頻點(diǎn)播網(wǎng)站的使用方法。2.4法律可行性分析法律的可行性旨在于研究在本流媒體視頻點(diǎn)播系統(tǒng)開(kāi)發(fā)在這一系列過(guò)程中是否可能涉及到有關(guān)合同或者侵權(quán)、責(zé)任等等與法律相違背和抵觸的問(wèn)題。本流媒體視頻點(diǎn)播網(wǎng)站是本人在指導(dǎo)老師的指導(dǎo)下獨(dú)立完成的,故不存在侵權(quán)行為或者由于本系統(tǒng)帶來(lái)的法律糾紛等問(wèn)題,所以在法律上是可行的。3需求分析根據(jù)系統(tǒng)開(kāi)發(fā)周期的要求可以分成五個(gè)階段,分別是:計(jì)劃階段和需求分析階段、設(shè)計(jì)階段和實(shí)施階段、最后一個(gè)階段為支持階段。例如在流媒體視頻網(wǎng)站系統(tǒng)的進(jìn)展計(jì)劃完成后,第一步是根據(jù)本流媒體視頻點(diǎn)播項(xiàng)目計(jì)劃所要求的開(kāi)啟系統(tǒng)需求分析階段。3.1系統(tǒng)設(shè)計(jì)目標(biāo) 系統(tǒng)規(guī)劃的總體任務(wù)是實(shí)現(xiàn)流媒體視頻點(diǎn)播。用戶可以對(duì)自己所創(chuàng)作的視頻進(jìn)行上傳、刪除,查看觀看人數(shù)以及評(píng)論人數(shù)。用戶可以觀看瀏覽其他視頻,評(píng)論等。本系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)該滿足以下目標(biāo):系統(tǒng)人機(jī)界面美觀,友好且便于操做,用戶可以進(jìn)行登錄、注冊(cè)、注銷(xiāo)操作;系統(tǒng)各個(gè)功能模塊顯示清晰,易于操作;實(shí)現(xiàn)視頻的搜索功能實(shí)現(xiàn)流媒體視頻的上傳、刪除以及視頻基本信息的填寫(xiě)功能;實(shí)現(xiàn)視頻的點(diǎn)播功能;實(shí)現(xiàn)流媒體的流控功能,防止用戶或黑客惡意訪問(wèn)系統(tǒng)從而占用帶寬和系統(tǒng)內(nèi)存,提供流量控制;實(shí)現(xiàn)視頻的評(píng)論功能;實(shí)現(xiàn)視頻播放量的統(tǒng)計(jì)功能;實(shí)現(xiàn)視頻評(píng)論數(shù)統(tǒng)計(jì)功能;系統(tǒng)最大限度地實(shí)現(xiàn)易維護(hù)性和運(yùn)行穩(wěn)定性;由于本流媒體視頻點(diǎn)播網(wǎng)站系統(tǒng)的設(shè)計(jì)是動(dòng)態(tài)的,所以在把握控制本軟件開(kāi)發(fā)的設(shè)計(jì)原則上就會(huì)顯得異常的重要。軟件開(kāi)發(fā)的每一個(gè)人都務(wù)必了解在系統(tǒng)的設(shè)計(jì)基本原則,可以概括為以下的幾點(diǎn):各個(gè)子組件的復(fù)用性;最大程度的簡(jiǎn)潔,本人解決各種疑惑的大體方向都是把較為復(fù)雜的問(wèn)題盡最大程度的減小,簡(jiǎn)潔化、簡(jiǎn)單化,這種解決方案也是我對(duì)于中間件或多層體系的最終期望和目的;對(duì)于任意一個(gè)組件的最終的代碼實(shí)現(xiàn)上應(yīng)該需要展示系統(tǒng)的核心特點(diǎn),因?yàn)橄到y(tǒng)的事物核心點(diǎn)僅僅只有一個(gè),所編寫(xiě)的代碼如果越靠近核心點(diǎn),說(shuō)明系統(tǒng)的設(shè)計(jì)就愈發(fā)簡(jiǎn)單,最初成品的系統(tǒng)就愈發(fā)穩(wěn)定。在大多數(shù)的表表現(xiàn),任意一個(gè)組件或許不可以映射系統(tǒng)事物的核心本質(zhì),可能更需要多個(gè)組件的組合以此來(lái)相互配合,那么能夠正確使用合適的設(shè)計(jì)模式就重中之重了;靈活的拓展性,如若本流媒體視頻點(diǎn)播網(wǎng)站的設(shè)計(jì)需要具備靈活性和拓展性,在后期可以在本系統(tǒng)的架構(gòu)上進(jìn)行二次、三次開(kāi)發(fā)。3.2業(yè)務(wù)流程分析 流媒體視頻點(diǎn)播網(wǎng)站的業(yè)務(wù)流程描述如下:游客打開(kāi)網(wǎng)站進(jìn)入主頁(yè),點(diǎn)擊登錄按鈕跳轉(zhuǎn)至登錄/注冊(cè)界面。未擁有賬戶的游客輸入賬戶和密碼,點(diǎn)擊注冊(cè)按鈕即可在本系統(tǒng)注冊(cè)新的賬號(hào),隨后以登錄用戶跳轉(zhuǎn)至網(wǎng)站主頁(yè)。已擁有賬戶的用戶輸入賬戶和密碼,點(diǎn)擊登錄后即可登錄本系統(tǒng),隨后以登錄用戶跳轉(zhuǎn)至網(wǎng)站主頁(yè)。已登錄用戶點(diǎn)擊右上角出現(xiàn)下拉框,有切換賬戶和退出登錄兩個(gè)選項(xiàng);點(diǎn)擊切換賬戶選項(xiàng)后系統(tǒng)將為用戶退出登錄當(dāng)前賬戶并跳轉(zhuǎn)至登錄頁(yè)面,并可重新登錄;點(diǎn)擊退出選項(xiàng)后系統(tǒng)將為用戶退出登錄當(dāng)前賬戶,用戶可以游客身份進(jìn)行其他操作。游客/登錄用戶可以從主頁(yè)中瀏覽所有已上傳至該網(wǎng)站的所有視頻信息。并可以點(diǎn)擊所感興趣的視頻跳轉(zhuǎn)至視頻播放頁(yè)面。在視頻播放頁(yè)面,游客/用戶使用HTML5播放器控制視頻的播放與暫停。視頻的下方為視頻的基本信息包括:流媒體的標(biāo)題、流媒體的描述、流媒體的上傳時(shí)間、流媒體的上傳作者等。在視頻播放頁(yè)面,視頻頁(yè)面底部是用戶評(píng)論部分,游客/用戶可以查看到對(duì)于該視頻的所有評(píng)論,并且已登錄的用戶可以發(fā)表評(píng)論。已登錄用戶在網(wǎng)站主頁(yè)可以進(jìn)入用戶視頻管理界面,在用戶視頻管理界面可以上傳視頻,填寫(xiě)視頻的基本信息如視頻標(biāo)題、視頻描述、上傳視頻封面等操作。在用戶視頻管理界面顯示當(dāng)前用戶所上傳的所有視頻,并會(huì)對(duì)每個(gè)視頻進(jìn)行播放量統(tǒng)計(jì)和每個(gè)視頻的評(píng)論數(shù)統(tǒng)計(jì)。3.3系統(tǒng)用例 系統(tǒng)的用例指的是以文字的表現(xiàn)形式的情景描述,以此表現(xiàn)某一參與者使用本網(wǎng)站來(lái)實(shí)現(xiàn)一些特定的目的。系統(tǒng)的用例基本思想表現(xiàn)在:從參與者、用戶的觀點(diǎn)來(lái)看,使用者或許并不愿意深入了解本網(wǎng)站的內(nèi)部組件,使用者可能只想了解的是系統(tǒng)所能提供的服務(wù),也就是所被開(kāi)發(fā)出來(lái)的網(wǎng)站將是如何被正確和高效使用的。3.3.1游客用例分析 本系統(tǒng)種游客的模塊用例圖,如圖3.1所示。圖3.1游客模塊用例圖 用例UC1:登錄 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:未登錄的用戶 涉及關(guān)注點(diǎn): -游客/未登錄用戶:希望獲取更多權(quán)限,使用更多功能。 前置條件:無(wú)。 成功保證:用戶信息存在數(shù)據(jù)庫(kù)中 主要成功場(chǎng)景:在本流媒體視頻點(diǎn)播網(wǎng)站的主頁(yè)點(diǎn)擊登錄,隨后跳轉(zhuǎn)至登錄/注冊(cè)頁(yè)面。在輸入框分別輸入用戶的賬號(hào)或者用戶的密碼。點(diǎn)擊登錄按鈕。用例UC2:注冊(cè) 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:游客 涉及關(guān)注點(diǎn): -游客/未登錄用戶:希望獲取更多權(quán)限,使用更多功能。 前置條件:無(wú)。 成功保證:存儲(chǔ)新注冊(cè)用戶信息,在數(shù)據(jù)庫(kù)中生成新用戶的記錄。 主要成功場(chǎng)景:主頁(yè)點(diǎn)擊登錄跳轉(zhuǎn)至登錄/注冊(cè)頁(yè)面。輸入注冊(cè)賬號(hào)、注冊(cè)密碼。點(diǎn)擊注冊(cè)按鈕3.3.2登錄用戶用例分析 已登錄用戶模塊用例圖,如圖3.2所示。圖3.2登錄用戶模塊用例圖用例UC3:查看視頻的評(píng)論 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:游客/登錄的用戶 涉及關(guān)注點(diǎn): -游客/登錄用戶:希望查看該視頻下其他用戶的見(jiàn)解和看法 前置條件:無(wú)。 成功保證:該視頻下有儲(chǔ)存其他用戶評(píng)論的信息 主要成功場(chǎng)景:主頁(yè)點(diǎn)擊所想觀看的視頻。視頻下方瀏覽對(duì)于該視頻的評(píng)論。用例UC4:視頻點(diǎn)播 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:游客/登錄用戶 涉及關(guān)注點(diǎn): -游客/登錄用戶:希望觀看所感興趣的視頻 前置條件:無(wú)。 成功保證:服務(wù)器有存儲(chǔ)該視頻文件 主要成功場(chǎng)景:主頁(yè)點(diǎn)擊所想觀看的視頻。進(jìn)入視頻頁(yè)面,在HTML5播放器點(diǎn)擊開(kāi)始按鈕進(jìn)行視頻點(diǎn)播。用例UC5:視頻上傳 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:用戶希望分享自己所創(chuàng)作的視頻。 前置條件:用戶已登錄網(wǎng)站。 成功保證:服務(wù)器成功存儲(chǔ)該視頻文件 主要成功場(chǎng)景:用戶視頻管理頁(yè)面點(diǎn)擊上傳按鈕。彈出視頻上傳頁(yè)面,選擇文件點(diǎn)擊上傳。跳轉(zhuǎn)至視頻信息表單填寫(xiě)頁(yè)面,點(diǎn)擊提交。用例UC6:視頻刪除 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:用戶希望刪除自己所上傳的視頻。 前置條件:用戶已上傳視頻并提交了視頻信息表單;用戶已登錄。 成功保證:視頻文件從服務(wù)器中刪除。 主要成功場(chǎng)景:用戶視頻管理頁(yè)面選中所要?jiǎng)h除的視頻點(diǎn)擊右側(cè)刪除按鈕。確認(rèn)刪除,視頻刪除完畢。用例UC7:視頻播放量統(tǒng)計(jì) 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:無(wú) 前置條件:用戶已上傳所要統(tǒng)計(jì)播放量的視頻;用戶已登錄。 成功保證:服務(wù)器有存儲(chǔ)該視頻文件,數(shù)據(jù)庫(kù)中更新播放量統(tǒng)計(jì)數(shù)據(jù)。 主要成功場(chǎng)景:用戶視頻管理頁(yè)面查看相應(yīng)的視頻播放量數(shù)據(jù)。用例UC7:視頻播放量統(tǒng)計(jì) 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:用戶希望了解自己所創(chuàng)作的視頻在網(wǎng)站的播放量。 前置條件:用戶已上傳所要統(tǒng)計(jì)播放量的視頻;用戶已登錄。 成功保證:服務(wù)器有存儲(chǔ)該視頻文件,數(shù)據(jù)庫(kù)中更新播放量統(tǒng)計(jì)數(shù)據(jù)。 主要成功場(chǎng)景:用戶視頻管理頁(yè)面查看相應(yīng)的視頻播放量數(shù)據(jù)。用例UC8:視頻播評(píng)論數(shù)統(tǒng)計(jì) 范圍:流媒體視頻點(diǎn)播網(wǎng)站 主要參與者:登錄用戶 涉及關(guān)注點(diǎn): -登錄用戶:用戶希望了解自己所創(chuàng)作的視頻在網(wǎng)站的評(píng)論數(shù)量。 前置條件:用戶已上傳所要統(tǒng)計(jì)評(píng)論數(shù)的視頻;用戶已登錄。 成功保證:服務(wù)器有存儲(chǔ)該視頻文件,數(shù)據(jù)庫(kù)中存在評(píng)論數(shù)數(shù)據(jù)。 主要成功場(chǎng)景:用戶視頻管理頁(yè)面查看相應(yīng)的視頻評(píng)論數(shù)的數(shù)據(jù)。3.4功能性需求分析本人模擬真實(shí)用戶的相關(guān)業(yè)務(wù)流程設(shè)計(jì)該系統(tǒng)的全部功能和特性,完成流媒體視頻點(diǎn)播網(wǎng)站的操作和使用使用權(quán)限:游客需求內(nèi)容:賬號(hào)注冊(cè)賬號(hào)登錄;視頻封面列表展示;視頻搜索;視頻點(diǎn)播;瀏覽評(píng)論; 使用權(quán)限:已登錄用戶 需求內(nèi)容:賬號(hào)登錄;賬號(hào)注銷(xiāo);切換賬號(hào);視頻封面列表展示;視頻搜索;視頻點(diǎn)播;評(píng)論瀏覽、評(píng)論發(fā)表;視頻上傳、刪除;視頻播放量統(tǒng)計(jì);視頻評(píng)論數(shù)統(tǒng)計(jì);3.5非功能性需求分析一、性能的需求分析: (1)響應(yīng)的時(shí)間:通??梢匀萑滔鄳?yīng)的時(shí)間大概在0.1秒之內(nèi)。 (2)數(shù)據(jù)的準(zhǔn)確性:有關(guān)視頻的數(shù)據(jù)信息要求準(zhǔn)確。二、運(yùn)行需求分析:(1)硬件接口:本流媒體視頻點(diǎn)播網(wǎng)站不需要某種特定的硬件或者硬件的接口進(jìn)行支持。 (2)軟件接口:運(yùn)行于LinuxOS7.0及更高版本。三、其他需求分析:
(1)系統(tǒng)的并發(fā)性:本流媒體視頻點(diǎn)播網(wǎng)站對(duì)于用戶的并發(fā)性具有較高的需求。 (2)系統(tǒng)圖容錯(cuò)性:本流媒體視頻點(diǎn)播網(wǎng)站對(duì)于用戶的輸錯(cuò)會(huì)有相關(guān)的信息提示,使得本系統(tǒng)具有一定程度的容錯(cuò)。4概要設(shè)計(jì)4.1系統(tǒng)模塊總體設(shè)計(jì) 在系統(tǒng)需求以及功能分析的基礎(chǔ)之上,將本網(wǎng)站劃分成5個(gè)主要的功能模塊。視頻點(diǎn)播模塊:該功能可由游客和已登錄用戶來(lái)操作。該功能實(shí)現(xiàn)點(diǎn)擊播放網(wǎng)站已上傳的視頻。視頻管理模塊:視頻上傳:該功能只允許已登錄用戶來(lái)進(jìn)行操作,用戶可以上傳自己所創(chuàng)作的視頻,并且填寫(xiě)有關(guān)視頻的基本信息和視頻封面。視頻刪除:該功能只允許已登錄用戶來(lái)進(jìn)行操作,用戶可以刪除自己所上傳的視頻。視頻播放量統(tǒng)計(jì):該功能只允許已登錄用戶來(lái)進(jìn)行操作,用戶可以查看自己已上傳視頻的播放量。視頻評(píng)論數(shù)統(tǒng)計(jì):該功能只允許已登錄用戶來(lái)進(jìn)行操作,用戶可以查看自己已上傳視頻的評(píng)論數(shù)用戶評(píng)論模塊:提供各用戶可以在對(duì)應(yīng)視頻下方發(fā)表自己的評(píng)論及見(jiàn)解,為用戶與用戶間提供交流的渠道。用戶管理:用戶注冊(cè):該功能提供游客申請(qǐng)注冊(cè)成為本網(wǎng)站會(huì)員,獲取其他權(quán)限。用戶登錄:該功能提供給擁有本網(wǎng)站賬號(hào)的用戶登錄本系統(tǒng)。賬戶注銷(xiāo):該功能提供給已登錄用戶退出登錄本網(wǎng)站。流控模塊:該功能為防止用戶或黑客惡意訪問(wèn)系統(tǒng)從而占用占用帶寬和系統(tǒng)內(nèi)存,提供流量控制。4.2系統(tǒng)功能模塊圖 根據(jù)以上的本流媒體視頻點(diǎn)播網(wǎng)站的系統(tǒng)模塊設(shè)計(jì),該系統(tǒng)的功能模塊圖如圖4.1所示。4.1系統(tǒng)功能模塊圖4.3數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)的設(shè)計(jì)指的是軟件開(kāi)發(fā)種的非常重要的組成部分,數(shù)據(jù)的設(shè)計(jì)是否合理、是否優(yōu)秀關(guān)系到整個(gè)系統(tǒng)的運(yùn)行效率以及后期的可維護(hù)性與可操作性。常用的數(shù)據(jù)庫(kù)有MySQL、MicrosoftSQLServer、NoSQL、MongoDB、Redis等。為了支持較大的數(shù)據(jù)量和保障安全性以及開(kāi)發(fā)的便利性,本系統(tǒng)采用的是MySQL數(shù)據(jù)庫(kù)系統(tǒng),本系統(tǒng)的數(shù)據(jù)庫(kù)名是video_server,總共包含了6張數(shù)據(jù)表。本網(wǎng)站系統(tǒng)數(shù)據(jù)庫(kù)主要包含以下6張數(shù)據(jù)結(jié)構(gòu)表:users(用戶的基本信息表)該表用于記錄用戶的基本信息。本表的主要字段如表4.1所示。表4.1用戶基本信息表FieldTypeNullKeyDefaultExtraAliasidintNOPRINULLauto_increment唯一識(shí)別碼Login_nameVarcharYESUNINULL用戶名pwdtextNONULL密碼 用戶基本信息表E-R圖如圖4.2所示。圖4.2用戶基本信息表E-R圖video_info(流媒體視頻信息表)此表用于記錄系統(tǒng)所有流媒體視頻的基本信息。主要字段如表4.2所示。表4.2流媒體視頻信息表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLauthore_idintYESFOREIGNNULLnametextYESNULLdisplay_ctimetextYESNULLcreate_timedatetimeYESCURRENT_TIMESTAMPDEAFULTtitletextYESNULLvideo_descriptiontextYESNULLimg_namevarcharYESNULL 視頻信息表E-R圖如圖4.3所示。圖4.3視頻信息E-R圖session(session信息表)此表用于記錄用戶登錄狀態(tài)的session信息。主要字段如表4.3所示。表4.3Sesssion信息表FieldTypeNullKeyDefaultExtrasession_idtinytextNOPRINULLTTLtinytextYESNULLlogin_namevarcharYESNULLsession信息表E-R圖如圖4.4所示。圖4.4Session信息E-R圖comments(評(píng)論詳細(xì)信息表)此表用于記錄用戶對(duì)于流媒體視頻的評(píng)論信息。主要字段如表4.4所示。表4.4評(píng)論詳細(xì)信息表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLvideo_idvarcharYESNULLauthor_idintYESNULLcontenttextYESNULLtimedatetimeYESCURRENT_TIMESTAMP 評(píng)論信息表E-R圖如圖4.5所示。圖4.5評(píng)論信息E-R圖video_view(視頻播放量統(tǒng)計(jì)表)此表用于記錄每個(gè)視頻的播放量。主要字段如表4.5所示。表4.5視頻播放量統(tǒng)計(jì)表FieldTypeNullKeyDefaultExtraidvarcharNOPRINULLauthor_idintYESNULLvideo_idvarcharNONULLnum_of_visitorsbigintNONULL 視頻播放量統(tǒng)計(jì)表E-R圖如圖4.6所示。圖4.6視頻播放量統(tǒng)計(jì)表5詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)5.1系統(tǒng)的運(yùn)行環(huán)境 (1)硬件環(huán)境: CPU:Intel(R)Core(TM)i5-8250UCPU@1.60GHz1.80GHz; 內(nèi)存:8GB; 硬盤(pán)256GB(2)軟件環(huán)境: 操作系統(tǒng):Windows10家庭中文版; 數(shù)據(jù)庫(kù):MySQL8.0.15; 開(kāi)發(fā)工具:JetBrainsGoLand2019.1.3x64WebStorm2019.3.2x64VisualStudioCode瀏覽器:GoogleChrome版本81.0.4044.92(正式版本)(64位);分辨率:最佳效果1366×768。;5.2相關(guān)技術(shù)簡(jiǎn)介5.2.1Golang編程語(yǔ)言簡(jiǎn)介Go是2007年在Google設(shè)計(jì)的,旨在在多核,\o"Computernetwork"聯(lián)網(wǎng)機(jī)器和大型代碼庫(kù)時(shí)代提高編程效率。設(shè)計(jì)師想解決Google使用的其他語(yǔ)言的批評(píng),但要保留其有用的特征:靜態(tài)類(lèi)型和運(yùn)行時(shí)效率(例如C++),可讀性和可用性(例如Python或JavaScript),高性能網(wǎng)絡(luò)和多處理。。Go于2009年11月公開(kāi)發(fā)布,1.0版于2012年3月發(fā)布。Go在Google
以及許多其他組織和開(kāi)源項(xiàng)目的生產(chǎn)中得到了廣泛使用。在2018年4月,原始徽標(biāo)被程式化的GO傾斜,尾隨流線形向右傾斜。但是,地鼠的
吉祥物保持不變。Thompson:一九八三年獲得圖靈獎(jiǎng)和在一九九八年獲得美國(guó)國(guó)家技術(shù)獎(jiǎng)(NationalMedalofTechnology)得主。他與DennisRitchie是Unix操作系統(tǒng)的原創(chuàng)者。Thompson也發(fā)明了C語(yǔ)言的B程序語(yǔ)言。Pike:曾是貝爾實(shí)驗(yàn)室(BellLabs)的Unix操作系統(tǒng)團(tuán)隊(duì),和Plan9操作系統(tǒng)計(jì)劃的成員。他與Thompson共事多年,并共創(chuàng)出廣泛使用的UTF-8字元編碼。RobertGriesemer:曾協(xié)助制作Java的HotSpot編譯器,和Chrome瀏覽器的JavaScript引擎V8。RussCox:Plan9開(kāi)發(fā)者IanTaylor:還曾經(jīng)完善了已廣泛使用之開(kāi)源碼編譯器GCCGolang這款編程語(yǔ)言到現(xiàn)在為止可以達(dá)到C和C++性能的百分之八十,卻遠(yuǎn)遠(yuǎn)高于快于C和C++程序的編譯鏈接的速度,就目前非?;馃崃餍械拈_(kāi)源軟件docker、kubernetes、lxd等等都是使用Golang編程語(yǔ)言所編寫(xiě)而成的,而且2016年Golang語(yǔ)言被評(píng)為年度編程語(yǔ)言,可見(jiàn)go的應(yīng)用場(chǎng)景非同一般。5.2.2Vue.js前端框架簡(jiǎn)介Vue.JS是一整套完善的用來(lái)搭建用戶界面的漸進(jìn)式的前端框架。與其他重量級(jí)框架,例如Angular.JS前端框架不同的是,Vue.JS采用的是自底向上增量開(kāi)發(fā)的架構(gòu)。Vue.JS的核心庫(kù)只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫(kù)或已有項(xiàng)目整合。而在另一個(gè)角度來(lái)看,Vue.JS完全是有能力驅(qū)動(dòng)使用單個(gè)文件組件和Vue.JS生態(tài)系統(tǒng)支持的函數(shù)庫(kù)開(kāi)發(fā)的復(fù)雜單頁(yè)應(yīng)用。5.2.3Axios技術(shù)簡(jiǎn)介Axios是一個(gè)基于Promise用于瀏覽器和Node.js的HTTP客戶端,它本身具有以下特征:從瀏覽器中創(chuàng)建XMLHttpRequest。從node.js發(fā)出http請(qǐng)求。支持PromiseAPI。攔截請(qǐng)求。攔截響應(yīng)。轉(zhuǎn)換請(qǐng)求的數(shù)據(jù)。轉(zhuǎn)換響應(yīng)的數(shù)據(jù)。取消請(qǐng)求。5.2.4Element-UI網(wǎng)站快速成型工具Consistency與現(xiàn)實(shí)生活相一致:與現(xiàn)實(shí)生活的流程、邏輯保持一致,遵循用戶習(xí)慣的語(yǔ)言和概念;在界面中相一致:所有的元素和結(jié)構(gòu)需保持一致,比如:設(shè)計(jì)樣式、圖標(biāo)和文本、元素的位置等。Feedback控制反饋:通過(guò)多樣的界面樣式以及各種各樣的交互動(dòng)效讓用戶可以清晰的感知自己的操作;頁(yè)面反饋:通過(guò)用戶操作,通過(guò)頁(yè)面元素的變化清晰地展現(xiàn)當(dāng)前狀態(tài)。Efficiency簡(jiǎn)化流程:設(shè)計(jì)簡(jiǎn)潔直觀的流程和操作;清晰明確:語(yǔ)言表達(dá)清晰且表意明確,讓用戶快速理解進(jìn)而做出決策;幫助用戶識(shí)別:界面簡(jiǎn)單直白,讓用戶快速識(shí)別而非回憶,減少用戶記憶負(fù)擔(dān)。Controllability用戶決策:根據(jù)場(chǎng)景可給予用戶操作建議或安全提示,但不能代替用戶進(jìn)行決策;結(jié)果可控性:用戶完全可以進(jìn)行自由的進(jìn)行操作,包括但不限于撤銷(xiāo)、回退和終止當(dāng)前操作等。5.3系統(tǒng)首頁(yè)設(shè)計(jì) 本流媒體視頻點(diǎn)播網(wǎng)站的首頁(yè)設(shè)計(jì)樣式,如圖5.1所示。圖5.1網(wǎng)站的首頁(yè)5.4系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn)5.4.1用戶管理模塊的設(shè)計(jì)與實(shí)現(xiàn)該模塊主要用來(lái)使游客注冊(cè)成為網(wǎng)站會(huì)員,已有賬號(hào)的會(huì)員登錄本網(wǎng)站解鎖更多權(quán)限。包括用戶注冊(cè)、用戶登錄、用戶退出、用戶切換賬號(hào)四個(gè)部分:用戶注冊(cè),如圖5.2所示:圖5.2用戶登錄/注冊(cè)游客進(jìn)入登錄/注冊(cè)頁(yè)面(http://localhost:8080/login),通過(guò)router.POST("/user/:username",Login)來(lái)接收前端Axios發(fā)送的POST請(qǐng)求,Login函數(shù)來(lái)作為控制器處理游客的注冊(cè)請(qǐng)求,成功后跳轉(zhuǎn)回到流媒體視頻網(wǎng)站的首頁(yè)(http://localhost:8080)。2.用戶登錄,如圖5.2所示:用戶進(jìn)入登錄/注冊(cè)頁(yè)面(http://localhost:8080/login),通過(guò)router.POST("/user",CreateUser)來(lái)接收前端Axios發(fā)送的POST請(qǐng)求,CreateUser函數(shù)作為控制器處理用戶的登錄請(qǐng)求,成功后跳轉(zhuǎn)回首頁(yè)(http://localhost:8080)。切換賬號(hào),如圖5.3所示:圖5.3切換賬戶/退出 登錄用戶在主頁(yè)(http://localhost:8080)點(diǎn)擊頭像選擇【切換賬號(hào)】,通過(guò)清除sessionStorage的內(nèi)容來(lái)清除用戶登錄的所有信息,以此限制未登錄用戶的進(jìn)一步操作,做出權(quán)限控制,然后通過(guò)Vue.js的router-link跳轉(zhuǎn)至登錄/注冊(cè)頁(yè)面(http://localhost:8080/login)進(jìn)行賬號(hào)切換。退出賬戶,如圖5.3所示:登錄用戶在主頁(yè)登錄用戶在主頁(yè)(http://localhost:8080)點(diǎn)擊頭像選擇【退出】,通過(guò)清除sessionStorage的內(nèi)容來(lái)清除用戶登錄的所有信息,以此限制未登錄用戶的進(jìn)一步操作,做出權(quán)限控制控制。使用this.$router.go(0)來(lái)強(qiáng)制刷新路由,以此來(lái)更新頁(yè)面顯示。5.4.2流媒體視頻點(diǎn)播模塊的設(shè)計(jì)與實(shí)現(xiàn) 該模塊功能是為游客和用戶提供視頻點(diǎn)播功能。包括視頻列表展示、視頻點(diǎn)播兩部分組成。視頻展示列表,如圖5.4所示:圖5.4視頻展示列表 游客和登錄用戶在主頁(yè)(http://localhost:8080)可以看到所有的視頻展示。前端通過(guò)API(http://localhost:8000/allvideos)請(qǐng)求后端服務(wù)器之后,以JSON格式得到返回的視頻數(shù)據(jù)以及視頻的詳細(xì)信息。最后在前端渲染處理得到的數(shù)據(jù)并在頁(yè)面展示。視頻點(diǎn)播,如圖5.5所示:圖5.5視頻點(diǎn)播 游客和登錄用戶在主頁(yè)(http://localhost:8080)點(diǎn)擊其中視頻跳轉(zhuǎn)至(http://localhost:8080/watch)相關(guān)播放頁(yè)面,前端通過(guò)API(http://localhost:8000)向后端發(fā)送請(qǐng)求,獲取流媒體的資源以此來(lái)在前端頁(yè)面展示。5.4.3視頻管理模塊的設(shè)計(jì)與實(shí)現(xiàn) 該模塊為用戶提供了視頻管理的相關(guān)功能。包括視頻封面展示、視頻播放量統(tǒng)計(jì)、視頻評(píng)論數(shù)統(tǒng)計(jì)、視頻上傳和視頻刪除功能。視頻上傳,如圖5.6、圖5.7所示:圖5.6視頻上傳圖5.7視頻信息填寫(xiě) 已登錄用戶在個(gè)人管理頁(yè)面(http://localhost:8080/channel)點(diǎn)擊右上角【創(chuàng)建】按鈕,彈出如圖5.6所示對(duì)話框。將所需要上傳的視頻拖進(jìn)對(duì)話框中,通過(guò)router.POST("/upload/:vid-id",uploadHandler)來(lái)接受前端Axios發(fā)送的請(qǐng)求,uploadHandler函數(shù)作為控制器處理視頻上傳的請(qǐng)求。隨后跳轉(zhuǎn)至視頻信息填寫(xiě)對(duì)話框,如圖5.7所示,填寫(xiě)視頻信息點(diǎn)擊上傳封面,通過(guò)router.POST("/uploadimg/:img-name",uploadImgHandler)來(lái)接受前端Axios發(fā)送的請(qǐng)求,uploadImgHandler函數(shù)作為控制器處理視頻封面上傳的請(qǐng)求。點(diǎn)擊【確定】按鈕,,通過(guò)router.POST("/user/:username/videos",AddNewVideo)來(lái)接受前端Axios發(fā)送的請(qǐng)求,AddNewVideo作為控制器處理視頻信息添加。視頻播放量統(tǒng)計(jì),如圖5.8所示:圖5.8 已登錄用戶在視頻管理頁(yè)面中(http://localhost:8080/channel)顯示了用戶所上傳的視頻播放量信息。后端通過(guò)router.GET("/user/:username/listviews",ListVideoViewNums)接收前端Axios發(fā)送的GET請(qǐng)求,ListVideoViewNums函數(shù)作為控制器處理獲取視頻播放量,并通過(guò)JSON格式返回?cái)?shù)據(jù),之后前端渲染將視頻播放量信息與每個(gè)視頻匹配展示。每點(diǎn)擊一次視頻,會(huì)向后端發(fā)送一次API請(qǐng)求(http://localhost:8080/channel),通過(guò)router.POST("/videos/:vid-id/views",AddVideoViewNum)接收請(qǐng)求,AddVideoViewNum函數(shù)作為控制器增加相應(yīng)視頻的信息。視頻評(píng)論數(shù)統(tǒng)計(jì):已登錄用戶在視頻管理頁(yè)面中(http://localhost:8080/channel)顯示了用戶所上傳的視頻評(píng)論數(shù)。后端通過(guò)router.GET("/listcommentnums",ShowCommentNums)接收前端Axios發(fā)送的GET請(qǐng)求,ShowCommentNums函數(shù)作為控制器處理獲取流媒體視頻的評(píng)論數(shù),并通過(guò)JSON格式返回給前端,前端得到數(shù)據(jù)后渲染將評(píng)論數(shù)與每個(gè)視頻做匹配后展示。5.4.4用戶評(píng)論模塊的設(shè)計(jì)與實(shí)現(xiàn) 該模塊為已登錄的用戶提供與評(píng)論相關(guān)的功能。包括評(píng)論發(fā)表、評(píng)論查看功能。如圖5.9所示:圖5.9評(píng)論發(fā)表已登錄用戶在相關(guān)流媒體視頻播放頁(yè)面(http://localhost:8080/watch),在視頻信息下方的評(píng)論框,輸入評(píng)論后,點(diǎn)擊底部【評(píng)論】按鈕。通過(guò)router.POST("/videos/:vid-id/comments",PostComment)接收前端Axios發(fā)送的POST請(qǐng)求,PostComment函數(shù)作為控制器處理用戶請(qǐng)求,將用戶評(píng)論插入數(shù)據(jù)庫(kù)。5.4.5流控模塊的設(shè)計(jì)與實(shí)現(xiàn) 流控模塊為防止用戶或黑客惡意訪問(wèn)系統(tǒng)從而占用帶寬和系統(tǒng)內(nèi)存,提供流量控制。如圖5.10所示:圖5.10流控模塊 使用令桶牌算法,每當(dāng)有一個(gè)用戶連接進(jìn)來(lái),就從桶里面取出一塊令牌,直到用戶完成操作,斷開(kāi)連接之后,系統(tǒng)再將令牌放回桶里。若桶里的令牌全部取出,后端將禁止用戶獲取連接,有效的做出流量限制,防止用戶惡意訪問(wèn)系統(tǒng),從而占用帶寬和系統(tǒng)內(nèi)存。6系統(tǒng)測(cè)試6.1軟件測(cè)試簡(jiǎn)介軟件測(cè)試是由“驗(yàn)證”和“有效性確認(rèn)”活動(dòng)所構(gòu)成的整體?!膀?yàn)證”是檢驗(yàn)軟件是否已正確實(shí)現(xiàn)系統(tǒng)的功能和特性;“有效性確認(rèn)”是確認(rèn)所開(kāi)發(fā)的軟件是否滿足用戶真正需求的活動(dòng)。軟件測(cè)試是軟件質(zhì)量保證的關(guān)鍵步驟。軟件總存在缺陷。只有通過(guò)測(cè)試,才可以發(fā)現(xiàn)軟件缺陷;也只有發(fā)現(xiàn)了缺陷,才可以將軟件缺陷從軟件產(chǎn)品或軟件系統(tǒng)中清理出去;軟件中存在的缺陷帶來(lái)的損失是巨大的,這也說(shuō)明了軟件測(cè)試的必要性和重要性。按時(shí)間、階段進(jìn)行可進(jìn)行以下劃分:?jiǎn)卧獪y(cè)試、集成測(cè)試、系統(tǒng)測(cè)試和驗(yàn)收測(cè)試。6.2測(cè)試需求軟件測(cè)試的需求指的是在軟件開(kāi)發(fā)的項(xiàng)目中所要測(cè)試的內(nèi)容。軟件的測(cè)試需求是詳細(xì)的、清晰的。測(cè)試的需求若詳細(xì),且精準(zhǔn),這樣的話就會(huì)對(duì)所要被測(cè)試的軟件的了解就愈發(fā)深刻,工作的內(nèi)容就更加的清晰,保證軟件測(cè)試的質(zhì)量和軟件測(cè)試的進(jìn)度就更加的有效果,這樣可以規(guī)避在軟件測(cè)試的過(guò)程中的各種各樣的疏漏。簡(jiǎn)而言之,這是一個(gè)測(cè)試的范圍。 本人給每一個(gè)測(cè)試需求以VS-001開(kāi)始編號(hào),以此類(lèi)推。 測(cè)試需求的優(yōu)先級(jí)分為高、中、低三類(lèi):優(yōu)先級(jí)為高,說(shuō)明是關(guān)鍵的任務(wù)需求,必須實(shí)現(xiàn),否則表明項(xiàng)目失敗;優(yōu)先級(jí)為中,表明最終版本要求;如若任務(wù)緊急,可在下一個(gè)版本中實(shí)現(xiàn);優(yōu)先級(jí)低,指的是在功能上的加強(qiáng),該功能的實(shí)現(xiàn)將促使本產(chǎn)品更完善。 測(cè)試需求如表6.1所示。表6.1測(cè)試需求表需求編號(hào)需求簡(jiǎn)述優(yōu)先級(jí)備注說(shuō)明VS-001用戶注冊(cè)測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-002用戶登錄測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-003鏈接測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-004流媒體列表展示測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-005流媒體點(diǎn)播測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-006流媒體上傳測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-007流媒體刪除測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-008播放量統(tǒng)計(jì)測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-009評(píng)論數(shù)統(tǒng)計(jì)測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-010用戶發(fā)表評(píng)論測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)VS-011查看評(píng)論列表測(cè)試高必須實(shí)現(xiàn)的關(guān)鍵任務(wù)6.3測(cè)試用例軟件測(cè)試的用例是對(duì)特定軟件產(chǎn)品測(cè)試任務(wù)的描述,反映了測(cè)試方案、方法、技術(shù)和策略。它的內(nèi)容包括軟件測(cè)試目標(biāo)和軟件測(cè)試環(huán)境、軟件測(cè)試的輸入數(shù)據(jù)以及軟件測(cè)試步驟,接著是軟件測(cè)試的預(yù)期結(jié)果和軟件測(cè)試的腳本等等,最后是表單和文檔。用通俗的話來(lái)描述,軟件的測(cè)試用例是為特定目標(biāo)準(zhǔn)備的一組測(cè)試輸入、執(zhí)行條件和預(yù)期結(jié)果,以驗(yàn)證是否滿足特定的軟件需求。撰寫(xiě)的測(cè)試用例如下(選擇性舉例)。表6.2用戶登錄測(cè)試用例測(cè)試用例編號(hào)VS-001-1測(cè)試標(biāo)題用戶登錄優(yōu)先級(jí)高前置條件無(wú)輸入賬戶:dcxx密碼:000操作步驟在網(wǎng)站主頁(yè)點(diǎn)擊右上角【登錄】跳轉(zhuǎn)至登錄頁(yè)面,輸入賬戶密碼,點(diǎn)擊【登錄】預(yù)期結(jié)果登陸成功,跳轉(zhuǎn)至主頁(yè)表6.3用戶注冊(cè)測(cè)試用例測(cè)試用例編號(hào)VS-002-2測(cè)試標(biāo)題用戶注冊(cè)優(yōu)先級(jí)高前置條件無(wú)輸入賬戶:dcxx密碼:000操作步驟在網(wǎng)站主頁(yè)點(diǎn)擊右上角【登錄】跳轉(zhuǎn)至登錄頁(yè)面,輸入賬戶密碼,點(diǎn)擊【注冊(cè)】。預(yù)期結(jié)果注冊(cè)成功,跳轉(zhuǎn)至主頁(yè)。表6.4流媒體列表展示測(cè)試用例測(cè)試用例編號(hào)VS-004-3測(cè)試標(biāo)題流媒體列表展示優(yōu)先級(jí)高前置條件無(wú)輸入無(wú)操作步驟輸入本流媒體視頻點(diǎn)播網(wǎng)站的網(wǎng)址。預(yù)期結(jié)果主頁(yè)展示所有已上傳的流媒體視頻。表6.5流媒體上傳測(cè)試用例測(cè)試用例編號(hào)VS-006-4測(cè)試標(biāo)題流媒體視頻上傳優(yōu)先級(jí)高前置條件用戶已登錄輸入視頻文件,標(biāo)題,說(shuō)明,封面操作步驟進(jìn)入視頻管理頁(yè)面,右上角點(diǎn)擊【創(chuàng)建】,將視頻文件拖入彈窗,點(diǎn)擊【下一步】,填寫(xiě)將要上傳的視頻標(biāo)題、說(shuō)明,再選擇視頻封面,點(diǎn)擊【確定】預(yù)期結(jié)果視頻上傳成功表6.6用戶發(fā)表評(píng)論測(cè)試用例測(cè)試用例編號(hào)VS-010-5測(cè)試標(biāo)題用戶發(fā)表評(píng)論優(yōu)先級(jí)高前置條件用戶已登錄輸入輸入評(píng)論操作步驟進(jìn)入流媒體視頻點(diǎn)播頁(yè)面,在視頻下方輸入將要發(fā)表的評(píng)論,點(diǎn)擊【評(píng)論】按鈕。預(yù)期結(jié)果評(píng)論發(fā)表成功表6.7查看評(píng)論列表測(cè)試用例測(cè)試用例編號(hào)VS-011-6測(cè)試標(biāo)題查看評(píng)論列表優(yōu)先級(jí)高前置條件無(wú)輸入無(wú)操作步驟進(jìn)入流媒體視頻點(diǎn)播頁(yè)面,在視頻發(fā)表評(píng)論下面查看對(duì)于該視頻的評(píng)論。預(yù)期結(jié)果查看列表成功6.4單元測(cè)試軟件的單元測(cè)試是旨在對(duì)軟件中的最小的可以測(cè)試單元進(jìn)行檢驗(yàn)。對(duì)于單元測(cè)試中單元的含義,用稍微通俗的話來(lái)描述,是要對(duì)真實(shí)情況去辨別具體的內(nèi)容。總的來(lái)說(shuō),單元就是人為規(guī)定的最小的被測(cè)功能模塊。單元測(cè)試是在軟件開(kāi)發(fā)過(guò)程中要進(jìn)行最低級(jí)別的測(cè)試活動(dòng),軟件的獨(dú)立單元是要處于與程序的其他部分互不干涉的情況下所測(cè)試的。(1)用戶的注冊(cè)測(cè)試若用戶沒(méi)有本流媒體視頻網(wǎng)站的賬戶,在賬戶輸入框中輸入所要注冊(cè)的賬戶明,在密碼輸入框中輸入密碼,點(diǎn)擊【注冊(cè)】(2)用戶登錄測(cè)試若用戶已擁有本流媒體視頻網(wǎng)站的賬戶,在賬戶輸入框中輸入所要注冊(cè)的賬戶明,在密碼輸入框中輸入密碼,點(diǎn)擊【登錄】(3)流媒體列表展示測(cè)試用戶或游客在瀏覽器地址欄輸入本流媒體視頻網(wǎng)站地址,跳轉(zhuǎn)至本網(wǎng)站。本網(wǎng)站將視頻封面、視頻標(biāo)題、視頻作者等展示出來(lái)。
(4)流媒體視頻上傳測(cè)試用戶登錄成功本流媒體視頻網(wǎng)站后,點(diǎn)擊本流媒體視頻網(wǎng)站右上方進(jìn)入視頻管理頁(yè)面,在視頻管理頁(yè)面點(diǎn)擊【創(chuàng)建】按鈕,選擇所要上傳的視頻,點(diǎn)擊【下一步】,填寫(xiě)所要上傳視頻的基本信息,點(diǎn)擊【
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年裝配式建筑項(xiàng)目施工勞務(wù)分包合同范本3篇
- 2025版快艇銷(xiāo)售及水上活動(dòng)策劃合同范本3篇
- 二零二五年度企業(yè)并購(gòu)合同及其保密協(xié)議3篇
- 2024房地產(chǎn)中介服務(wù)與購(gòu)買(mǎi)權(quán)轉(zhuǎn)讓合同
- 系統(tǒng)分析課課程設(shè)計(jì)
- 2025版建筑工地高空作業(yè)安全監(jiān)控與應(yīng)急處理合同3篇
- 稅法課程設(shè)計(jì)個(gè)人
- 瘦身大小腸護(hù)理
- 2025版人工智能領(lǐng)域合伙協(xié)議補(bǔ)充協(xié)議
- 成都職業(yè)技術(shù)學(xué)院《材料分析測(cè)試技術(shù)(B)》2023-2024學(xué)年第一學(xué)期期末試卷
- 虛假信息的傳播與倫理
- 某27層高層住宅樓施工組織設(shè)計(jì)方案
- 化工(危險(xiǎn)化學(xué)品)企業(yè)主要負(fù)責(zé)人、安管員安全生產(chǎn)管理專(zhuān)項(xiàng)培訓(xùn)考核試卷(附參考答案)
- 中華人民共和國(guó)殘疾評(píng)定表
- 人教版美術(shù)五年級(jí)上冊(cè)《第2課 色彩的和諧》說(shuō)課稿2
- 2024年6月浙江省高考?xì)v史試卷(真題+答案)
- 住友(SWS)汽車(chē)連接器(Connectors)產(chǎn)品配套手冊(cè)
- 辦公樓室內(nèi)裝飾工程施工設(shè)計(jì)方案技術(shù)標(biāo)范本
- 2023年香港華夏杯六年級(jí)競(jìng)賽初賽數(shù)學(xué)試卷
- 高中數(shù)學(xué)放縮法
- 上海市閔行區(qū)2024-2025學(xué)年八年級(jí)(上)期末物理試卷(解析版)
評(píng)論
0/150
提交評(píng)論