歡迎使用社群 Markdown 編輯器寫文章!
一. 背景
大佬們如有什麼寫的不對的歡迎大家在下面留言指出。
最近公司在從 PHP 轉到 Golang ,所以這個專案屬於練手專案很多東西也是在摸著石頭過河,持續更新中....
二 .庫的選擇
既然是IM 系統必定會涉及到用TCP 來維持長連線,再這裡我們選擇了github.com/gorilla/websocket
作為我們的webcocket 庫。在web服務的選擇上我們選擇了github.com/gin-gonic/gin 作為我們的web服務。
json 庫的選擇我們沒有選擇官方的庫,而是選擇了第三方的json 庫(josn是什麼不做解釋)
傳統的做法就是用非官方的json 庫 ,需要我們先提前定義struct 或者用一個map[string]interface。
我個人不喜歡定義結構體所以我們用了一個第三方庫https://github.com/tidwall/gjson
在接下來的更新裡面我會詳細介紹這些庫的使用方法
三 .專案目錄結構
API :基於gin 的web服務
socket : websocket 服務
config :配置檔案
controller:控制器
database:資料庫操作
helps :幫助方法
middleware : 中介軟體
models:資料庫的結構體 定義
router : 路由地址