一台普通配置的服务器, 如我们使用的16G内存 CPU Xeon E5-2620, 可以很轻松的支撑20万日活APP的推送任务.
- 如果使用苹果apns推送,由于node-http2兼容性问题 node版本必须是6.2.2
https://nodejs.org/en/download/package-manager/
redis-server &
mongod &
sudo npm install -g socket.io-push@version
##npm安装运行, 也可以直接clone代码, 在push-server目录运行node .
mkdir push-server
cd push-server
generate-push-server-config
push-server -f
-f foreground启动,不指定会后台启动
-
config-proxy.js, 存在则启动proxy进程.
-
config-api.js, 存在则启动api进程.
-
config-apn-proxy.js apn代理进程配置, 存在则启动apn代理. 只有在 国内api->香港apn-proxy->苹果 这种部署模式下需要, 否则api进程即可直接调用苹果
-
config-admin.js 管理后台配置,存在则启动admin进程.
-
config-log.js 日志配置
-
客户端SDK连接HTTP地址: http://localhost:10001
-
客户端SDK连接HTTPS地址: https://localhost:10443
-
API HTTP地址: http://localhost:11001
-
API HTTPS地址: https://localhost:11443 支持http2 spdy
- 如何多机部署?
proxy,api,apn-proxy均可以独立部署。只需保证配置中连接同一个mongodb,同一组redis。建议在调用机器上直接部署api进程。proxy前端机器独立部署。
proxy,api,apn-proxy启动多少个进程,由各自config中instance控制,一般api只需要一个即可,proxy cpu数量/2。
- 多个proxy前端情况下,如何负载均衡?
依靠dns解析到所有前端ip,当然也可以使用lvs。Nginx是不行的,由于长连接是一对一,nginx最多能把机器出口ip占完6w多个连接,远远不能满足需要
- 如何指定只发安卓或者ios?
notification接口里只传ios或者android,即可指定单一平台发送