前言:

  公司原本使用了第三方提供的IM消息系統(tǒng),隨著業(yè)務發(fā)展需要,三方的服務有限,并且出現問題也很難處理和排查,所以這次新版本迭代,我們的server同事嘔心瀝血做了一個新的IM消息系統(tǒng),我們也因此配合做了一些事情。 對于前端來說,被告知需要用到protocol buffer,什么gui?最開始我一直沒弄懂到底是個什么東西,感覺和平時接觸的技術差別比較大。 還有二進制什么的,以前感覺從來就沒在前端使用過。 久經波折,這次的旅途學到了很多東西,所以作此博客。

protocol buffer:

  簡稱protobuf,google開源項目,是一種數據交換的格式,google 提供了多種語言的實現:php、JavaScript、java、c#、c++、go 和 python等。 由于它是一種二進制的格式,比使用 xml, json 進行數據交換快許多。以上描述太官方不好理解,通俗點來解釋一下,就是通過protobuf定義好數據結構生成一個工具類,這個工具類可以把數據封裝成二進制數據來進行傳輸,在另一端收到二進制數據再用工具類解析成正常的數據。

 

為什么用protobuf(以下是后端大大“邱?!钡囊馑?:

優(yōu):

  1.json占用流量大,用了protobuf的二進制傳輸會幫助傳輸更輕量,節(jié)約用戶和服務端流量 。之前舊消息系統(tǒng)使用json的時候發(fā)現,當一臺服務器訪問量很大的時候,cpu占用很低,但是帶寬已經滿了,服務器承載量也就滿了。

 

  2.json太隨意太靈活