直播軟件開發(fā),主動的方式有很多種,你選哪個
直播軟件開發(fā)想要讓服務(wù)器主動推送消息,可以選擇長輪詢和長連接的方式,兩種方式都適合平臺,但也有各自的特點,什么場景下選擇什么樣的方式有必要好好了解一下。
?

一、長輪詢和長連接
1、長輪詢,直播軟件開發(fā)客戶端每隔很短的時間,都會對服務(wù)器發(fā)出請求,查看是否有新的消息,只要輪詢速度夠快就能實現(xiàn)實時交互的效果。其缺點也很明顯,不停、不斷的請求會對服務(wù)器、客戶端都造成大量的性能浪費。
2、長連接,瀏覽器和服務(wù)器只需要做一個握手動作,在建立連接后,雙方可以在任意時刻相互推送消息,同時服務(wù)器和客戶端之間交換的信息很小。
?

二、websocket和socket.io
1、websocket是一種讓直播軟件開發(fā)客戶端和服務(wù)器之間進(jìn)行雙向?qū)崟r通信的技術(shù),它是HTML新標(biāo)準(zhǔn)下的協(xié)議規(guī)范,本質(zhì)上是個基于TCP的協(xié)議,通過HTTP/HTTPS協(xié)議發(fā)送一條特殊的請求進(jìn)行握手后創(chuàng)建的TCP連接,此后瀏覽器/客戶端和服務(wù)器之間可以通過此連接來進(jìn)行雙向?qū)崟r通信。
不過需要注意的是,websocket對直播軟件開發(fā)的使用環(huán)境要求較高,比如,需要瀏覽器支持,那只能在PC端上應(yīng)用,APP端沒有太好的服務(wù)支持,另外還需要寫一些程序,來處理TCP請求。
2、socket.io,屬于websocket的上位版,因為websocket是支持瀏覽器的,所以存在不兼容的情況,所以就有了socket.io,它將websocket、ajax和其他通信方式全部封裝成統(tǒng)一的通信接口,有效解決了直播軟件開發(fā)APP端不兼容的問題,底層會自動選用最佳的通信方式。
?

到此直播軟件開發(fā)使用的推送方式就這些,主動推送下對服務(wù)器的資源占用較大,開銷自然也高起來了,所以直播軟件開發(fā)的運營商需要注意該在什么情況下選擇什么方式,避免資源的過度使用和浪費。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任