使用go語言開發的乙個非同步伺服器

2021-08-15 20:40:42 字數 625 閱讀 7485

大約是2023年7月,我開始學習go語言開發。

目標是開發自己的伺服器,從**入手呢?

想找乙個伺服器**來學習如何使用go語言寫伺服器,畢竟我是搞後台的。但是我搜尋了一番,沒有找到乙個像樣的,比較多的資料是go 語言的web程式設計,當然了,有幾本這樣的書了。有的都是些東拼西湊的東西,根本跑不起來。

學得差不多了,就動手搞吧。

我之前的經歷對於c++的高效能非同步框架非常的熱衷,所以決定使用go語言實現乙個非同步的基於socket的後台svr框架。

寫了大概2個月,最終通過幾次改版,形成了可以使用的socket的框架。自己編寫了幾個實際的伺服器,執行效果不錯。

今天把他弄到了github上,大家可以拍磚

此伺服器**有幾大特點:

1. **自動生成,增加協議,只需要實現協議的handle

2. 採用反射的機制,只需要註冊命令號與處理此命令號的handler。開發快速,簡單可靠

3. 引入自動化測試例子

我後面還加入了grpc框架的版本。後面有時間整理一下,也放上來。

更多認知,感悟,

go語言開發環境安裝及第乙個go程式

go語言開發包的安裝沒有其他需要設定的選項,點選 install 即可開始安裝,如下圖所示 等待程式完成安裝,然後點選 finish 退出安裝程式。安裝完成後,在我們所設定的安裝目錄下將生成一些目錄和檔案,如下圖所示 使用vs code建立乙個hello.go程式 package main 宣告 m...

go語言乙個switch的坑

今天遇到乙個案例,挺有意思,而且難以置信 func alwaysfalse bool func main 猜一下輸出什麼?對,你猜錯了,真實輸出為true。看到這有一種罵娘的衝動,為啥呀,明明是false的呀。別急,咱們改一下,你要的false就出來了。func alwaysfalse bool f...

初學go語言開發第乙個爬蟲專案

讀取網頁內容 buf make byte,4 1024 for result string buf n return func spideronejoy url string title,content string,err error re regexp.mustcompile if re nil...