使用Netty搭建APP推送服务器

/ Java / 没有评论 / 2301浏览

调用时序图如下: 源码:https://github.com/Aresyi/pushServer

  1. 获取socket登录秘钥(登录口令):key. key的时效为1分钟,如果客户端在拿到key后,1分钟之内不执行socket登录验证的流程,则key自动生效;接口服务地址:/user/getPushKey
  2. 客户端拿到key后,与服务器端建立socket连接,并立即发送key到服务器。如果key过期,则服务器会执行下列操作:
  1. key验证成功后,服务器会立即返回初次心跳消息;初次心跳消息的格式如下:
A:{“Result”:{“sysNotifyCount”:1,”applyCount”:106,”messageCount”:0,”commentCount”:0,”praiseCount”:0,”sysCastCount”:[]}}

注:(与V1.210及以前的版本的消息格式相同) 4. 心跳:

  1. 服务器端主动返回的消息:当服务器端收到任何需要实时通知客户端的消息时,服务器端会主动向客户端推送一条socket消息;消息内容的格式如下:B:n,n=[1..5] n表示消息的类型,定义如下:

附:测试用例:

连接测试

  1. 获取pushkey后连接socket
  2. pushkey超时后连接socket
  3. 错误的pushkey连接socket
  4. 网络中断后,提示“网络故障,连接失败”
  5. 网络中断,恢复后,socket可以自动连接
  6. 切换网络后,socket可以自动连接;
  7. 注销->重新登录后,socket可以正确连接
  8. cookie过期后–>自动登录–>连接socket
  9. 程序进入后台后,再次回到前台(1分钟内和超过1分钟)

业务测试

  1. 发送和接收私信 <–ok
  2. 发送名片交换请求 <–ok
  3. 接受名片交换请求 <–ok
  4. 系统消息 (手工编写的系统消息未测试)
  5. 公司群组->加入群组成功后,加入人收到提示;
  6. 公司群组->管理员收到加群的提示;
  7. 邀请用户完善个人资料 <–ok
  8. 对动态写评论 <–ok
  9. 对动态写赞 <–ok
  10. 对群组里的内容写赞;<–ok
  11. 对群组里的内容写评论;<–ok

源码:https://github.com/Aresyi/pushServer