專案地址: websocket_gateway
github.com/tianye/websocket_gatewa...
有興趣一起做這個小服務的同學可以聯絡我哈~
有興趣使用一下的也可以聯絡我~
第一版功能:
可以替換 workerman 和 swoole 的一部分功能更快的讓使用者更關注業務
不關心swbsocket的處理
公用的webSocket協議閘道器
- 完成ws協議的握手操作
- 上線事件接受
- 下線事件接受
- 訊息事件接受
可以使用http協議使用
- 推送訊息到管道
- 獲取管道線上狀態
- 踢出管道強制離線
- 獲取線上管道數量
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 協議》,轉載必須註明作者和本文連結