Terry-Mao/goim 是一個支持集群的im及實時推送服務

jopen 9年前發布 | 80K 次閱讀 電話/通訊/IM聊天 Terry-Mao/goim

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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!