werew

  1. 用户注册
    1. 表单参数包括name、password提交到后台,执行添加用户逻辑
    2. password保存的时候采用MD5+Salt处理
  2. 用户登录
    1. 登录成功返回一个token,由后端颁发,具有半个小时的过期时间。
    2. 后续使用过程中的敏感操作都会带上这个token作为校验。若是token过期则重新颁发
    3. 敏感操作的接口都会被打上自定义注解@JwtToken。一般来说都是增删操作或者实时性操作
    4. token能够解决App预加载问题。比如头像、昵称、ID、用户二维码能够提前加载
  3. 头像
    1. 头像属于大数据文件,本来准备使用blob类型保存到Mysql数据库,但是这样对整个App的使用不方便
    2. 解决方案:使用FastDFS开源技术,把这种图片、语音、音频等文件保存到Linux服务器上的FastDFS Server上,这样方便头像、头像缩略图、音视频文件的异步加载
  4. 好友
    1. 好友的添加。
      1. 扫描对方的二维码名片添加
      2. 手动在查询界面输入对方的ID添加
      3. WebSocket技术实时通知App端
    2. 好友的删除(预设接口,未实现)
    3. 好友的资料查看(预设接口,未实现)
  5. 聊天服务器
    1. 使用Netty + WebSocket技术打造聊天服务器
    2. Netty主要负责消息的类型判断、转发流程、保存操作
    3. WebSocket主要负责App端和Server端的实时互相通信。解决使用Http协议通信会带来不可靠、服务端无法图送消息等问题。
    4. 聊天chatting
      1. 单聊(私聊)
      2. 群聊(预设接口,未实现)
  6. 消息
    1. 文字消息
      1. 文字消息过滤。过滤掉HTML、CSS、JS等关键字比如
        等。
      2. 文字消息的发送。WebSocket对象的send()函数与服务端实时通信
    2. 系统消息
      1. 好友相关操作消息(实时性)
      2. 心跳消息(保持连接)
    3. 语音消息(预设接口,未实现)
    4. 图片消息(预设接口,未实现)
    5. 视频消息(预设接口,未实现)
  7. 心跳
    1. 为了保持每个App的连接的有效性以及释放非必要资源。
    2. WebSocket共同使用,WebSocket负责定时发送心跳包。
    3. Netty.IdleStateEvent负责心跳的检测
全部评论

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务