golang apns升級到http2

記錄一下golang中升級apns,使用http2替換http1.1的詳細過程。git

apns使用http2的好處就不用再說了,網上一搜一堆信息。蘋果的apns推送在2015年8月就支持了http2協議,新的協議仍是比較人性化的,基於http2的速度也有提高。github

接下來列舉下升級的步驟。golang

1. 對於golang的版本有要求,須要將golang升級到1.5以上。當前最新穩定版本是1.6.2,因此我直接升級到了1.6.2bash

注意golang1.6對系統有要求,不然源碼編譯不會經過:網站

 

refer: https://golang.org/doc/installspa

 

鑑於工做中當前的golang版本是1.1.2,比較老,其升級到1.6.2須要先升級到1.4。由於1.4以後的版本,編譯是基於golang的,而再也不是gcc。
1)下載golang1.4的包,解壓到/usr/local(這以前先將老的go備份吧,1.4的目錄使用go1.4吧,由於這是臨時的)。固然這個安裝路徑隨便怎麼選,通常是這個路徑。

2)編譯源碼。進入go1.4/src,執行./all.bash,等待...

3)解壓go1.6的包,解壓到/usr/local,目錄取名直接就是go

4)配置GOROOT_BOOTSTRAP環境變量,指向go1.4的目錄

export GOROOT_BOOTSTRAP=/usr/local/go1.4
由於這個是臨時的,就直接在會話中指定。

5)進入go1.6進行源碼編譯

cd /usr/local/go/src

./all.bash
6)編譯經過後,設置環境變量,在/etc/profile中追加(估計以前有這個GOROOT的,沒有這個就追加)

export GOROOT=/usr/local/go

PATH=$PATH:$GOROOT/bin/

而後保存退出

source /etc/profile

7)go version看看版本號

2. 下載必須的第三方包,使用go get失敗的,就去其餘地方手動下載吧,由於國外的網站,在天朝是被牆的。推薦去https://gopm.io/downloadcode

必須下載如下的第三方包:

golang.org/x/crypto
golang.org/x/net/http2
golang.org/x/text

將這些包解壓到你的GOPATH工做目錄。解壓後目錄以下

src
├── github.com
...
├── golang.org
│   └── x
│        ├── crypto
│        ├── net
│        └── text

以後再

go get golang.org/x/net/http2 
go get golang.org/x/crypto
go get golang.org/x/text

到此爲止,能夠在golang裏面使用http2進行開發了。orm

 

遇到的問題blog

1. apns的請求返回報錯,malformed HTTP status code "client"開發

這個錯誤是由於使用了http1.1的協議去請求,而apns使用的是http2的協議。多是緣由是本身沒有成功使用http2.

相關文章
相關標籤/搜索