如果websocket傳輸性能高的話。為什么現(xiàn)在讀取數(shù)據(jù)還需要用GET獲取,或者AJAX呢?
?
為什么不能用workerman的websocket??用websocket是不是響應(yīng)速度比nginx或apache快的多的多?而且連接數(shù)也高的多的多??
?
開(kāi)發(fā)類(lèi)似網(wǎng)易這樣的https://3g.163.com/touch/reconstruct/article/list/BA10TA81wangning/0-10.html新聞接口。他們?yōu)槭裁床挥脀ebsocket或者TCP呢???
?
是不是有什么缺點(diǎn)?
GET或者AJAX之類(lèi)的請(qǐng)求場(chǎng)景針對(duì)的是HTTP協(xié)議,而HTTP協(xié)議的特點(diǎn)之一就是適用于短連接;而websocket協(xié)議則適用于長(zhǎng)連接;
所舉網(wǎng)易例子是典型的短連接場(chǎng)景,所以要使用HTTP協(xié)議搞事兒【nginx或apache正是http協(xié)議實(shí)現(xiàn)的代表WEB服務(wù)器軟件】;
最后反過(guò)來(lái),如果對(duì)于這類(lèi)新聞接口使用websocket協(xié)議,那么對(duì)于同一個(gè)客戶(hù)端而言其不可能在成功建立連接并成功查一次數(shù)據(jù)之后一直不停的查詢(xún)數(shù)據(jù),這就會(huì)造成tcp連接長(zhǎng)期空閑式侵占浪費(fèi)。
?
關(guān)鍵還是要看是長(zhǎng)連接還是短連接應(yīng)用場(chǎng)景。
沒(méi)有websocket傳輸性能高的說(shuō)法吧。
即使高差那么幾微秒用戶(hù)沒(méi)感覺(jué)的,瓶頸不在傳輸上,優(yōu)化這里有毛意義。
ajax請(qǐng)求完就關(guān)閉,代價(jià)低。websocket還要一直維持連接,成本很高啊,幾十萬(wàn)連接心跳數(shù)據(jù)都要消耗很大帶寬。
?
?
?