websocket gateway 中介軟體可替換 workerman 和 swoole 部分功能

不忘初心發表於2020-07-03

專案地址: websocket_gateway

github.com/tianye/websocket_gatewa...

有興趣一起做這個小服務的同學可以聯絡我哈~
有興趣使用一下的也可以聯絡我~

第一版功能:
可以替換 workerman 和 swoole 的一部分功能更快的讓使用者更關注業務
不關心swbsocket的處理

公用的webSocket協議閘道器

  1. 完成ws協議的握手操作
  2. 上線事件接受
  3. 下線事件接受
  4. 訊息事件接受

可以使用http協議使用

  1. 推送訊息到管道
  2. 獲取管道線上狀態
  3. 踢出管道強制離線
  4. 獲取線上管道數量

readme.md

###注意:

1\. 生產環境需要使用 Supervisor 保證穩定
2. 生成的管道ID 每離線1000個使用者會重新複用 需要修改 
路徑檔案: conf/defind.go 
const ClearSocketConnectionNum = 1000
可以在自行打包, !!!所以離線的管道記錄需要刪除,不要儲存
3. 使用例項和linux版,mac版服務端已經打包好在
linux路徑檔案: client_admin_service/websocket_gateway_mac.zip
mac路徑檔案: client_admin_service/websocket_gateway_linux_amd64.zip
需要解壓縮後使用

###使用:

client_and_service資料夾

client.html     模擬客戶端連線 js版本
client_php.php  模擬客戶端連線 php版
client_go.go    模擬客戶端連線 go版

service_api.php 模擬服務端主動呼叫介面
service_callback.php 模擬接受到(客戶端訊息和事件的處理)和當前gateway的事件處理
service_callback.log 接受到的日誌

如果也是go服務的話也是直接請求介面和接受json事件就可以了.
解密管道ID的方法在檔案:
common/structure/connection/connection.go:369
func DecodeConnection(connectionId string) (connectionInfo ConnectionInfo, err error)

###啟動

go run main.go -network_local_ip="127.0.0.1" -intranet_local_ip="127.0.0.1" -socket_listen_port="8301" -http_listen_port="8302" -callback_url_path="http://127.0.0.1:8808/service_callback.php"

MAC版本:

./websocket_gateway_mac -network_local_ip="127.0.0.1" -intranet_local_ip="127.0.0.1" -socket_listen_port="8301" -http_listen_port="8302" -callback_url_path="http://127.0.0.1:8808/service_callback.php"

Linux版本:

./websocket_gateway_linux_amd64 -network_local_ip="127.0.0.1" -intranet_local_ip="127.0.0.1" -socket_listen_port="8301" -http_listen_port="8302" -callback_url_path="http://127.0.0.1:8808/service_callback.php"

###啟動引數

 -callback_url_path string
        事件回撥地址 (default "http://127.0.0.1:8808/service_callback.php")
  -conf string
        配置檔案
  -http_listen_port string
        http監聽埠 (default "8302")
  -intranet_local_ip string
        內網訪問IP-沒有請填寫同外網IP (default "127.0.0.1")
  -network_local_ip string
        外網IP (default "127.0.0.1")
  -socket_listen_port string
        socket監聽埠 (default "8301")

###打包:

Mac 下編譯 Linux 和 Windows 64位可執行程式:
------------------------------------------------------------------
websocket_gateway_mac:
go1.14.4 build main.go
------------------------------------------------------------------
websocket_gateway_linux_amd64:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go1.14.4 build main.go
------------------------------------------------------------------
GOOS:目標平臺的作業系統(darwin、freebsd、linux、windows)
GOARCH:目標平臺的體系架構(386、amd64、arm)
交叉編譯不支援 CGO 所以要禁用它
------------------------------------------------------------------
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章