基於GO語言實現web客服即時通訊與客服管理系統GO-FLY

2020-09-25 go的慢慢學習路

go-fly

基於GO語言實現的web客服即時通訊與客服管理系統。非常適合給自己的網站增加在線客服功能,代碼簡單也適合學習。

github地址:https://github.com/taoshihan1991/go-fly

1.使用gin http框架實現restful風格的API和template包的模板語法進行展示界面

2.使用jwt-go配合gin中間件實現無狀態的jwt登陸認證

3.資料庫實現的rbac權限配合gin中間件實現權限控制

4.通過cobra進行命令行參數解析和執行對應的功能

5.使用go modoule解決依賴問題

6.使用swagger實現文檔展示

7.使用go-imap實現郵件的列表展示和讀取

8.使用go-smtp實現發送郵件

9.使用github.com/gorilla/websocket實現即時通訊

10.使用gorm配合mysql實現數據存儲

11.前端使用elementUI和Vue展示界面

11.充分實踐了struct,interface,map,slice,for range,groutine和channel管道等基礎知識

項目預覽

安裝使用

  1. 先安裝和運行mysql , 創建go-fly資料庫,並導入*.sql創建表結構與數據.
  2. 基於go module使用go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,direct在任意目錄 git clone https://github.com/taoshihan1991/go-fly.git進入go-fly 目錄在config目錄mysql.json中配置資料庫{ &34;:&34;, &34;:&34;, &34;:&34;, &34;:&34;, &34;:&34; }
  1. 源碼運行 go run go-fly.go server port 8081
  2. 源碼打包 go build go-fly.go 會生成go-fly可以執行文件
  3. 導入資料庫(會刪除表清空數據) ./go-fly install
  4. 二進位文件運行linux: ./go-fly server port 8081windows: go-fly.exe server port 8081

nginx部署

訪問:https://gofly.sopans.com

參考支持https的部署示例 , 注意反向代理的埠號和證書地址

server { listen 443 ssl http2; ssl on; ssl_certificate conf.d/cert/4263285_gofly.sopans.com.pem; ssl_certificate_key conf.d/cert/4263285_gofly.sopans.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; 34;upgrade&34;&34;upgrade&34;"; }}

生成文檔

  1. 需要先安裝swag
  2. 在根目錄swag init

相關焦點

  • web開發我更喜歡使用GO語言
    go語言在2007年9月設計,然後於2009年11月正式向外宣布推出使用,而且是開放原始碼項目,首先在Linux系統與Mac OS X平臺實現運行,不久在Windows系統實現。go語言可能是Google開發的程式語言,迅速受到開發的關注並願意使用它,在2016年被TIOBE 選為「TIOBE 年最佳程式語言」,可想而知go能被開發者認可一定有它獨特的優勢,而我更喜歡使用GO語言web開發。
  • IT挑戰高薪必備Go語言常識-Go WEB框架
    Go語言是一門快速成長的語言,專為構建簡單、快速且可靠的軟體而設計,尤其是用Go語言開發WEB服務端軟體,開發效率和程序運行性能都很優秀,真正做到了兼顧開發和運行效率。Go語言提供的net/http庫對於HTTP協議實現的非常好,基於此再構造框架會更容易,因此生態中出現了很多框架。
  • go-admin 開源後臺管理系統
    go-admin是一個go語言開發的後臺管理系統,該系統以角色為基礎的權限管理設計(RBAC),完成了系統管理模塊功能的開發(其他示例模塊後續加上),採用前後端分離實現方式,服務端基於go開源gin框架,前端開源框架vue-element-admin。使用Swagger 2.0自動生成API文檔。
  • Go程式語言也可以用來編寫Web應用?
    Go程式語言也可以用來編寫Web應用? Go語言的語法接近C語言,但是對於變量的聲明是不同的,其他語法不同之處是for循環和if判斷式沒有括號圍繞。Go語言支持垃圾回收功能。
  • 快速轉型golang(go語言)web開發 03-Go語言的特點
    穩定的二進位接口go自發布1.0時,就承諾向後兼容,所以即使用高版本的go去運行之前用低版本go寫的代碼,一樣可以運行。這也是go可以作為工業級語言的前提。穩定的語言特性自1.0版發布以來,go很少像其它語言那樣在語言層面添加新的語法(再也不用擔心學不動了有木有)實實在在的性能go的每次版本升級,都會帶來或多或少的性能提升以及bug修復(所以對於程式設計師而言,我們就很省心了,不需要像學java那樣還得學很多額外的性能調優知識)Go語言 vs 其它技術棧Go的開發速度跟python
  • [Go 語言教程] Go 語言簡介
    Go 語言教程1 Go 語言介紹Go 即Golang,是Google公司2009年11月正式對外公開的一門程式語言。Go是靜態強類型語言,是區別於解析型語言的編譯型語言。解析型語言——原始碼是先翻譯為中間代碼,然後由解析器對代碼進行解釋執行。編譯型語言——原始碼編譯生成機器語言,然後由機器直接執行機器碼即可執行。
  • 「Go 語言教程」 Go語言結構
    Go 語言教程學習一門程式語言,除了學習語法,詞法,以及寫法等和編譯器有關的特性(就是什麼是語法錯誤)之外,需要對這個語言的結構有個清晰的認識,其中包括代碼目錄結構,源碼文件,以及代碼結構組織等。1 目錄和源碼首先我門看目錄和源碼,從之前的Go 語言教程我們知道,Go語言有工程目錄,和GOPATH環境變量對應,工程目錄結構有bin 存放編譯後的可執行文件src 存放實現源碼,go get工具獲取的web上的模塊包都會放到這個目錄下,並有對應的目錄結構pkg 存放編譯後的庫文件(分不同平臺)Go語言的源碼文件格式為.go格式。
  • 快速轉型golang(go語言)web開發 03-Go語言的特點
    穩定的二進位接口go自發布1.0時,就承諾向後兼容,所以即使用高版本的go去運行之前用低版本go寫的代碼,一樣可以運行。這也是go可以作為工業級語言的前提。穩定的語言特性自1.0版發布以來,go很少像其它語言那樣在語言層面添加新的語法(再也不用擔心學不動了有木有)實實在在的性能go的每次版本升級,都會帶來或多或少的性能提升以及
  • 快速轉型golang(go語言)web開發 02-Go前世今生
    開發,被稱為「網絡時代的C語言」爆發國內外各大廠商先後在不同類型的項目裡面使用go語言,go開發的領域涵蓋了web開發、區塊鏈開發等熱門領域全面開花在國內IT界的一二線大廠,已經找不到不用go語言的了……自從用了go語言,我欣賞藍天白雲的時間也多了起來
  • 基於Go的馬蜂窩旅遊網分布式IM系統技術實踐
    另外:如果你對Go在高並發系統中的應用感興趣,即時通訊網的以下兩篇也值得一讀:《Go語言構建千萬級在線的高並發消息推送系統實踐(來自360公司)》《12306搶票帶來的啟示:看我如何用Go實現百萬QPS的秒殺系統(含源碼)》
  • 基於Go語言大型企業級電商秒殺系統實戰教程 張長志技術全才、擅長...
    視頻教程-基於Go語言大型企業級電商秒殺系統實戰教程-Go語言 學習有效期:永久觀看項目開發歷程:基於大數據技術推薦系統 ,醫療保險大數據分析與統計推斷,H5跨平臺APP,攜程酒店APP,Go語言實現Storm和ZK類似框架。   「你將學到什麼?」
  • 基於GF(Go Frame)的後臺管理系統
    平臺簡介基於GF(Go Frame)的後臺管理系統前端採用ruoyi-ui 、Vue、Element UI。後端採用GO語言 框架 GF(Go Frame)。內置功能用戶管理:用戶是系統操作者,該功能主要完成系統用戶配置。部門管理:配置系統組織機構(公司、部門、小組),樹結構展現支持數據權限。崗位管理:配置系統用戶所屬擔任職務。
  • 快速轉型golang(go語言)web開發 01系列概覽
    為什麼要出這個快速轉型go語言的系列?因為現在go語言在國內實在是太火了……火,就意味著有錢途^_^(是的你沒看錯,就是你想的那個錢途)Go在國內到底有多火?現在市面上的大廠:華為、阿里巴巴、騰訊、百度、拼多多、京東、字節跳動、小米、美團、滴滴、360……已經沒有不用go語言的了……但是……go火爆速度遠大於市場上go工程師的供給速度,面對市面上大量go語言的崗位需求和明朗的就業前景,必定會有很多朋友有快速轉型的需求……
  • 適合新手:手把手教你用Go快速搭建高性能、可擴展的IM系統
    》《一套海量在線用戶的移動端IM架構設計實踐分享(含詳細圖文)》《一套原創分布式即時通訊(IM)系統理論架構方案》《從零到卓越:京東客服即時通訊系統的技術架構演進歷程》《蘑菇街即時通訊/IM伺服器開發之架構選擇》《一套高可用、易伸縮、高並發的IM群聊、單聊架構方案設計實踐》
  • Go語言Echo Web框架1-簡單HelloWorld
    1.go的運行環境,如何設置,此處省略,有興趣的同學可以到go的官網或者go語言中文網,看相關的文檔配置運行環境。目前echo已經到版本4了,建議go的環境1.10以上。2.安裝echo包,使用go get方式,有興趣的同學可以使用dep或者go module:go get github.com/labstack/echo/v4下載的依賴包在GOPATH路徑下對應的文件下。對GOPATH不是很了解的同學,多看看go語言官網的文檔。
  • Go語言愛好者周刊:第 58 期—關於 context
    7、手把手教你用 ETCD:一篇短文卻包含眾多知識一句話概括的話:ETCD 是一個基於 RAFT 的分布式 KV 存儲系統。8、都說 Go 可以開啟成千上萬的 Goroutine,那調度器是怎麼處理核上任務分配的?
  • Go 語言極速 web 框架 IRIS V4 發布
    Golang目前已經發展成為非常廣泛使用的開發語言,如果你開發WEB、後臺服務、API,都可以用到golang.
  • 為網站增加聊天功能:一個基於WebSocket的聊天開源項目
    如果不是站長,你知道如何實現這個功能嗎?今天推薦的這個項目,就是一個在線 Web 即時通訊管理系統。項目名稱:go-fly,項目地址:https://github.com/taoshihan1991/go-fly。
  • 快速轉型golang(go語言)web開發 01-系列概覽
    go工程師的供給速度,面對市面上大量go語言的崗位需求和明朗的就業前景,必定會有很多朋友有快速轉型的需求……而且……現在市面上好多go語言的視頻教程都是時長動不動就幾十個小時、以自下而上的方式講解的,但是對於一個需要快速轉型到go領域的人而言,大部分人都很難拿出那個時間去看幾十個小時的視頻
  • 老王學習go語言——2.1 Go Kit和Go Micro
    啟用tls時,默認消息傳遞是點對點http / 1.1或http2可插拔接口:Go Micro為每個分布式系統抽象使用Go接口,因此,這些接口是可插拔的,並允許Go Micro與運行時無關,可以插入任何基礎技術go-micro之所以可以高度訂製和他的框架結構是分不開的,go-micro由8個關鍵的interface組成,每一個interface都可以根據自己的需求重新實現