Terry-Mao/goim 是一個支持集群的im及實時推送服務
gopush-cluster
Terry-Mao/goim是一個支持集群的im及實時推送服務(支持websocket,http和tcp協議)。
特性
- 輕量級
- 高性能
- 純Golang實現
- 支持單個、多個以及廣播消息推送
- 支持單個Key多個訂閱者(可限制訂閱者最大人數)
- 心跳支持(應用心跳和tcp、keepalive、http log pulling)
- 支持安全驗證(未授權用戶不能訂閱)
- 多協議支持(websocket,tcp,http)
- 可拓撲的架構(job、logic模塊可動態無限擴展)
- 基于Kafka做異步消息推送
安裝
一、安裝依賴
$ yum -y install java-1.7.0-openjdk
二、安裝Kafka消息隊列服務
kafka在官網已經描述的非常詳細,在這里就不過多說明,安裝、啟動請查看這里.
三、搭建golang環境
1.下載源碼(根據自己的系統下載對應的安裝包)
$ cd /data/programfiles $ wget -c --no-check-certificate https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz $ tar -xvf go1.5.linux-amd64.tar.gz -C /usr/local
2.配置GO環境變量 (這里我加在/etc/profile.d/golang.sh)
$ vi /etc/profile.d/golang.sh # 將以下環境變量添加到profile最后面 export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin export GOPATH=/data/apps/go $ source /etc/profile
四、部署goim
1.下載goim及依賴包
$ yum install hg $ go get -u github.com/Terry-Mao/goim $ cd /data/apps/go/src/github.com/Terry-Mao/goim $ go get ./...
2.安裝router、logic、comet、job模塊(配置文件請依據實際機器環境配置)
$ cd $GOPATH/src/github.com/Terry-Mao/goim/router $ go install $ cp router-example.conf $GOPATH/bin/router.conf $ cp router-log.xml $GOPATH/bin/ $ cd ../logic/ $ go install $ cp logic-example.conf $GOPATH/bin/logic.conf $ cp logic-log.xml $GOPATH/bin/ $ cd ../comet/ $ go install $ cp comet-example.conf $GOPATH/bin/comet.conf $ cp comet-log.xml $GOPATH/bin/ $ cd ../logic/job/ $ go install $ cp job-example.conf $GOPATH/bin/job.conf $ cp job-log.xml $GOPATH/bin/
到此所有的環境都搭建完成!
五、啟動goim
$ cd /$GOPATH/bin $ nohup $GOPATH/bin/router -c $GOPATH/bin/router.conf 2>&1 > /data/logs/goim/panic-router.log & $ nohup $GOPATH/bin/logic -c $GOPATH/bin/logic.conf 2>&1 > /data/logs/goim/panic-logic.log & $ nohup $GOPATH/bin/comet -c $GOPATH/bin/comet.conf 2>&1 > /data/logs/goim/panic-comet.log & $ nohup $GOPATH/bin/job -c $GOPATH/bin/job.conf 2>&1 > /data/logs/goim/panic-job.log &
如果啟動失敗,默認配置可通過查看panic-xxx.log日志文件來排查各個模塊問題.
六、測試
推送協議可查看push http協議文檔
配置
TODO
例子
Websocket: Websocket Client Demo
文檔
push http協議文檔推送接口
更多
TODO
來自:https://github.com/Terry-Mao/goim/blob/master/README_cn.md
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!