社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
Terry-Mao/gopush-cluster 是一个支持集群的comet服务(支持websocket,和tcp协议)。
特性
轻量级
高性能
纯Golang实现
支持消息过期
支持离线消息存储
支持单个以及多个私信推送
支持单个Key多个订阅者(可限制订阅者最大人数)
心跳支持(应用心跳和tcp keepalive)
支持安全验证(未授权用户不能订阅)
多协议支持(websocket,tcp)
详细的统计信息
可拓扑的架构(支持增加和删除comet节点,web节点,message节点)
利用Zookeeper支持故障转移
安装(版本1.0.5)
一、安装依赖
二、搭建zookeeper
1.新建目录
2.下载zookeeper,推荐下载3.4.5或更高版本
3.启动zookeeper(zookeeper的集群配置在这里不做详细介绍,如果有多台机器,建议做集群)
三、搭建redis
如果如下报错,则安装tcl8.5(参考附资料2)
四、安装git工具(如果已安装则可跳过此步)
参考:git
$yum -y install git
五、搭建golang环境
1.下载源码(根据自己的系统下载对应的安装包)
2.配置GO环境变量 (这里我加在/etc/profile.d/golang.sh)
六、部署gopush-cluster
1.下载gopush-cluster及依赖包
$./dependencies.sh
如果提示如下,说明需要安装谷歌的hg工具(安装mercurial,参考附资料1)
2.安装message、comet、web模块(配置文件请依据实际机器环境配置)
到此所有的环境都搭建完成!
七、启动gopush-cluster
八、测试
1.推送单个私信(例:消息过期时间为expire=600秒)
成功返回:{"ret":0}
2.批量推送私信
成功返回:{"data":{"fk":["t1","t2"]},"ret":0}
字段m是消息体,k是要批量推送的订阅key,每个key用,分割。
3.获取离线消息接口
在浏览器中打开:
http://localhost:8090/1/msg/get?k=Terry-Mao&m=0
成功返回:
4.获取节点接口
在浏览器中打开:
http://localhost:8090/1/server/get?k=Terry-Mao&p=2
成功返回:
九、附资料
1.下载安装hg
如果安装提示找不到文件‘Python.h’ 则需要安装 python-devel
$yum -y install python-devel
如果报错:couldn`t find libraries,则添加环境变量
$exportPYTHONPATH=/usr/local/lib64/python2.6/site-packages
2.安装tcl8.5
配置
web节点的配置文件示例:
comet节点的配置文件示例:
message节点的配置文件示例:
例子
文档
web节点相关的文档:
内部协议主要针对内部管理如推送消息、管理comet节点等。
客户端协议主要针对客户端使用,如获取节点、获取离线消息等。
comet节点相关的文档:
客户端协议主要针对客户端连接comet节点的协议说明。
内部RPC协议主要针对内部RPC接口使用的说明。
message节点的相关文档:
内部RPC协议主要针对内部RPC接口的使用说明。
架构
有疑问加站长微信联系(非本文作者)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!