真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言http2的簡單介紹

Go語言HTTPServer開發(fā)的六種實現(xiàn)

學完了 net/http 和 fasthttp 兩個HTTP協(xié)議接口的客戶端實現(xiàn),接下來就要開始Server的開發(fā),不學不知道一學嚇一跳,居然這兩個庫還支持Server的開發(fā),太方便了。

網(wǎng)站的建設創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設計體驗!已為成都發(fā)電機回收等企業(yè)提供專業(yè)服務。

相比于Java的HTTPServer開發(fā)基本上都是使用Spring或者Springboot框架,總是要配置各種配置類,各種 handle 對象。Golang的Server開發(fā)顯得非常簡單,就是因為特別簡單,或者說沒有形成特別統(tǒng)一的規(guī)范或者框架,我發(fā)現(xiàn)了很多實現(xiàn)方式,HTTP協(xié)議基于還是 net/http 和 fasthttp ,但是 handle 語法就多種多樣了。

先復習一下: Golang語言HTTP客戶端實踐 、 Golang fasthttp實踐 。

在Golang語言方面,實現(xiàn)某個功能的庫可能會比較多,有機會還是要多跟同行交流,指不定就發(fā)現(xiàn)了更好用的庫。下面我分享我學到的六種Server開發(fā)的實現(xiàn)Demo。

基于 net/http 實現(xiàn),這是一種比較基礎的,對于接口和 handle 映射關系處理并不優(yōu)雅,不推薦使用。

第二種也是基于 net/http ,這種編寫語法可以很好地解決第一種的問題,handle和path有了類似配置的語法,可讀性提高了很多。

第三個基于 net/http 和 github.com/labstack/echo ,后者主要提供了 Echo 對象用來處理各類配置包括接口和handle映射,功能很豐富,可讀性最佳。

第四種依然基于 net/http 實現(xiàn),引入了 github.com/gin-gonic/gin 的路由,看起來接口和 handle 映射關系比較明晰了。

第五種基于 fasthttp 開發(fā),使用都是 fasthttp 提供的API,可讀性尚可,handle配置倒是更像Java了。

第六種依然基于 fasthttp ,用到了 github.com/buaazp/fasthttprouter ,有點奇怪兩個居然不在一個GitHub倉庫里。使用語法跟第三種方式有點類似,比較有條理,有利于閱讀。

如何安裝Go語言安裝包

go語言作為google的一個主推語言,最近很多人都在研究,也花了一點時間對他的安裝進行了測試,本人使用Sublime Text 2 + GoSublime + gocode

顧名思義首先是安裝Go,這里有很詳細的安裝說明, 或者(golang.org自己去找hosts),官方已經(jīng)支持Windows版本

下載解壓配置環(huán)境變量

“環(huán)境變量”(我的電腦-高級系統(tǒng)設置-環(huán)境變量),在系統(tǒng)變量的標簽下,依次新建編輯如下幾個鍵值對:

(1). 新建 變量名:GOBIN 變量值 :c:\go\bin

(2). 新建 變量名:GOARCH 變量值:386

(3). 新建 變量名:GOOS 變量值:windows

(4). 新建 變量名: GOROOT 變量值:c:\go

(5). 編輯 Path 在Path的變量值的最后加上 %GOBIN%

1. 下載 Sublime Text 2,地址如下:

2. 解壓以后,雙擊 sublime_text,就可以使用 Sublime Text 2 了。

破解:

用 WinHex 編輯 sublime_text_backup.exe 文件, 跳到 000CBB70 那一行,將該行的 8A C3 修改為 B0 01 然后保存

破解注冊成功

3. 安裝 Package Control,在打開 Sublime Text 2以后,按下快捷鍵 Ctrl + `,打開命令窗行(具體在view——show Console),并回車:

import urllib2,os; pf=’Package Control.sublime-package’; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),’wb’).write(urllib2.urlopen(‘’+pf.replace(‘ ‘,’%20′)).read()); print ‘Please restart Sublime Text to finish installation’

4. 重啟Sublime Text 2后,就可以發(fā)現(xiàn)在 Preferences菜單下,多出一個菜單項 Package Control。

5.現(xiàn)在安裝GoSublime插件了,按住Ctrl+Shilft+p會彈出一個對話框輸入install回車彈出一個安裝包的對話框

同上輸入GoSublime選擇GoSublime回車

本機已經(jīng)安裝所以沒有出現(xiàn)選項,輸入Go build選中回車(這個屬于可選)

到此GoSublime安裝成功

6.下面安裝gocode,

首安裝 Git-1.7.11-preview20120710。

打開控制臺,輸入以下內(nèi)容:

go get github.com/nsf/gocode

go install github.com/nsf/gocode

go get github.com/DisposaBoy/MarGo

go install github.com/DisposaBoy/MarGo

也可以去github下載(要安裝google的git版本管理工具)

安裝完成后,我們可以在 go/bin 目錄下,發(fā)現(xiàn)多出了個 gocode 文件。(一定要放在bin目錄下)

7. 修改GoSublime配置:在 Preferences菜單下,找到Package Settings,然后找到 GoSublime,再往下找到 Settings – Default。再打開的文件中,添加如下配置,并保存:

"env": {"path":"c:/go/bin;" },

好了,到目前為止,開發(fā)環(huán)境搭建完成。

下面可以自由編程了。呵呵。

按下快捷鍵 Ctrl + b 界面下方會出現(xiàn)如下界面:

好了,到現(xiàn)在,開發(fā)環(huán)境就搭建完畢了。

如下是內(nèi)容我這邊沒有使用照樣可以使用:

sublime Text 2 編譯配置設置方法

tools-build system-new build system 新建一個配置文件 設置為

{

“cmd”: ["go", "run", "$file_name"],

“file_regex”: “^[ ]*File \”(…*?)\”, line ([0-9]*)”,

“working_dir”: “$file_path”,

“selector”: “source.go”

}

然后就可以用ctrl+b 編譯了

保存

如何學習go語言的net/http包

1、看go自帶的文檔

godoc -http=localhost:999

2、看go for web和go并發(fā)編程者兩本書

附上學習資料

go語言聊天室實現(xiàn)(六)創(chuàng)建HTTP連接,并升級為長連接

我們在mian函數(shù)中,首先初始化配置文件,然后新建http連接。

這個連接創(chuàng)建之后,監(jiān)聽服務器的9999端口。如果url的路徑后綴為 "/ws",就轉(zhuǎn)發(fā)到ws/ws.go中的IndexHandler方法中。

這個方法中首先我們創(chuàng)建一個websocket的Upgrader實例,然后我們使用Upgrader的upgrade方法來升級一下我們的連接為長連接。

升級完成之后會返回一個*websocket.Conn的連接,我們之后所有的關于連接的操作,都是基于該conn的。

在該連接完成之后,我們將連接存放到一個名為Client的map中,以便之后管理更為方便。

之后,我們啟動一個goroutine來讀取連接中發(fā)送的信息內(nèi)容,再根據(jù)內(nèi)容進行相應的操作。

Go語言的應用

Go語言由Google公司開發(fā),并于2009年開源,相比Java/Python/C等語言,Go尤其擅長并發(fā)編程,性能堪比C語言,開發(fā)效率肩比Python,被譽為“21世紀的C語言”。

Go語言在云計算、大數(shù)據(jù)、微服務、高并發(fā)領域應用應用非常廣泛。BAT大廠正在把Go作為新項目開發(fā)的首選語言。

Go語言應用范圍:

1、服務端開發(fā):以前你使用C或者C++做的那些事情,用Go來做很合適,例如日志處理、文件系統(tǒng)、監(jiān)控系統(tǒng)等;

2、DevOps:運維生態(tài)中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go語言開發(fā);

3、網(wǎng)絡編程:大量優(yōu)秀的Web框架如Echo、Gin、Iris、beego等,而且Go內(nèi)置的 net/http包十分的優(yōu)秀;

4、Paas云平臺領域:Kubernetes和Docker Swarm等;

5、分布式存儲領域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;

6、區(qū)塊鏈領域:區(qū)塊鏈里面有兩個明星項目以太坊和fabric都使用Go語言;

7、容器虛擬化:大名鼎鼎的Docker就是使用Go語言實現(xiàn)的;

8、爬蟲及大數(shù)據(jù):Go語言天生支持并發(fā),所以十分適合編寫分布式爬蟲及大數(shù)據(jù)處理。

http的共享怎么開

這里我介紹兩種方法!

一 ?:用IIS或者Apache之類的web服務器軟件實現(xiàn)http文件共享

?這里我以IIS為例介紹下用常用的web服務器實現(xiàn)文件共享的方法,具體如下(以我機器為例):

? 1、打開IIS,打開“網(wǎng)站 -- 默認網(wǎng)站”,右鍵點擊“屬性”,點擊“主目錄”,勾選“目錄瀏覽”選項,如下圖所示:

??

2、進入文件夾C:\Inetpub\wwwroot,拷貝文件“1.7z“到這個目錄:

? ?

3、打開瀏覽器,輸入本機ip(比如我的:192.168.1.123),即可看到共享的文件并可以下載:

? ?

? ?點擊“1.7z”即可下載。

二 ?:用python或者go語言實現(xiàn)http文件共享

1、python實現(xiàn)http文件共享:

? 用過python的都知道python有一個很牛x的命令:

python?-m?SimpleHTTPServer

在C:\Python27下運行命令:

?打開瀏覽器,可以看到如下效果:

?這個命令的默認端口是8000,如果我再加一個端口參數(shù),可以用其它端口進行訪問,命令如下:

打開瀏覽器:

? ??知道了這個原理,可以寫個bat文件,在需要的時候copy到相應的目錄雙擊即可,比如我的httpShare.bat文件如下:

? ? ?python -m SimpleHTTPServer 80

? ? ?默認用80端口,訪問時候只需要輸入我的ip地址即可。

2、go語言實現(xiàn)http文件共享:

上面的方法很方便,windows和linux通吃,不過前提是要安裝python

這里我有個用go語言實現(xiàn)的,也是windows和linux通吃(windows下不知道怎么配置的可以參考我之前的文章:,類似C/C++,是代碼可移植,使用前你只需編譯一次。

下面是示例代碼(httpShare.go):

package?main

import?(

"http"

"fmt"

)

func?main(){

h?:=?http.FileServer(http.Dir("."))

var?port?string

fmt.Printf("Please?input?port?Number:?")

fmt.Scanf("%s",port)

http.ListenAndServe(":"+port,?h)???

}

運行效果:


文章名稱:go語言http2的簡單介紹
文章起源:http://weahome.cn/article/hpocso.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部