直播平臺(tái)搭建,通信框架的基本消息發(fā)送方式
就直播平臺(tái)搭建而言,通信框架有兩種消息發(fā)送方式:同步發(fā)送和異步發(fā)送,我們從它們各自的方面來說一下同步和異步發(fā)送。
?

一、同步方式
消息的發(fā)送方發(fā)出消息到接收端,接收端收到消息后需要對(duì)消息進(jìn)行處理,然后發(fā)送給ACK確認(rèn)消息回饋,發(fā)送方收到ACK后就可以確認(rèn)這條消息發(fā)送成功了,并且保證接收方順利收到并處理了消息,在發(fā)送方收到ACK之前,都會(huì)處于一個(gè)阻塞等待狀態(tài),不再接受直播平臺(tái)搭建的其他信息。
?

二、異步方式
可細(xì)分成發(fā)送線程和接受線程異步,發(fā)送端進(jìn)程和接收端進(jìn)程異步。
直播平臺(tái)搭建發(fā)送線程和接收線程的異步消息發(fā)送線程1發(fā)消息給2,1和2都有消息的接收和發(fā)送緩存,1將消息送入發(fā)緩存后,會(huì)立即返回并借著發(fā)送下一條信息,緩存中的消息將被逐條寫入TCP,2端從TCP拿到消息先入收緩存,2從收緩存中逐條取出處理,這里的收發(fā)兩個(gè)線程處于不同的進(jìn)程中,且同一時(shí)間可能同時(shí)處理不同的消息
發(fā)送端進(jìn)程和接收端進(jìn)程異步指的是,發(fā)送方和接收方不必同時(shí)在線,1將消息發(fā)送到消息列表后就可以去響應(yīng)直播平臺(tái)搭建其他的用戶,2上線后從消息隊(duì)列中獲取1發(fā)送過來的消息,我們常用的通訊軟件都是這個(gè)原理。
?

三、兩者的區(qū)別
同步和異步發(fā)送消息對(duì)于消息發(fā)送可靠性保障上是有區(qū)別的,同步發(fā)送保證了每條信息都被直播平臺(tái)搭建順利收到并處理,若發(fā)送消息之后等待ACK期間超時(shí),表示對(duì)方未妥善收到并處理消息,發(fā)送方可以對(duì)消息進(jìn)行重發(fā)操作,因此同步發(fā)送一定程度上保證了消息的可靠性。
異步方式由于中間存在收發(fā)緩存,當(dāng)接收端進(jìn)程異常重啟后,緩存內(nèi)消息可能會(huì)丟失,因此發(fā)送方發(fā)出的消息并不一定被接收處理,直播平臺(tái)搭建在保證消息發(fā)送可靠性的前提下同步方式發(fā)送消息的處理性反而超越異步方式發(fā)送。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任