开源IM项目-InChat登陆接口设计与实现(基于Netty)

开源IM项目-InChat登陆接口设计与实现(基于Netty)
开源IM项目-InChat登陆接口设计与实现(基于Netty)
开源IM项目-InChat登陆接口设计与实现(基于Netty)

小弟正在作的一个开源IM项目,目标是实现一个轻量级、高效率的支持聊天与物联网的通信框架。昨天刚刚出的设计稿并再今天作了实现。web

项目是基于Netty的二次开发,关于Netty我这里就再也不介绍了,懂的人天然都懂。个人预算是作一个全部企业或组织能够引用的Maven项目,而且是基本上开箱即用,简单实现对应的配置与重写方法就能够搭建本身的IM项目(某Q、某信的效果)。小程序

本文着重介绍的是登陆接口的设计与实现。服务器

设计思路websocket

开源IM项目-InChat登陆接口设计与实现(基于Netty)
关于InChat统一登陆的接口设计,设计针对小程序、APP、Web端的登陆做用,因此将做为token的形式登陆InChat的WebSocket长链接,用户服务器作sso的认证登陆后获得token后直接发送login信息到InChat,用户服务器须要重写InChat中的verifyToken方法校验本身的的Token信息是否有效,正常则启动长链接。考虑到token失效问题,WebSocket长链接的登陆仅作初次登陆,接下来考虑以心跳形式保持连接状态(pingpong),使用token认证是为保护InChat连接的常规化(目前暂时这样设计后面根据使用状况更改设计)框架

因为目前大部分的Web项目或基于IM的项目登陆可能存在多端的单点登陆,因此我选用了Token的形式,为何登陆后还须要用token再来websocket这边校验一次呢?socket

由于你登陆的是web应用程序端的,而websocket而言,只要别人知道你的地址,那么就能够连接上,咱们不但愿存在过多的死连接(无效连接),因此咱们须要将token再次发给InChat登陆,由InChat来检验是不是合法登陆连接,若是无效则关闭连接。ide

开源IM项目-InChat登陆接口设计与实现(基于Netty)

代码实现学习

开源IM项目-InChat登陆接口设计与实现(基于Netty)

还请各位看官移步GitHub,设计

一、GitHub搜索InChat便可找到小弟项目blog

开源IM项目-InChat登陆接口设计与实现(基于Netty)

二、学习资料齐全,正在不断更新文档资料中

开源IM项目-InChat登陆接口设计与实现(基于Netty)
三、加入咱们一块儿建设项目与提供建议,有小伙伴和你一块儿学习哦

(QQ群:628793702)

开源IM项目-InChat登陆接口设计与实现(基于Netty)
开源IM项目-InChat登陆接口设计与实现(基于Netty)
开源IM项目-InChat登陆接口设计与实现(基于Netty)

最后,公众代码实现均会在GitHub上,考虑到不方便与显示问题,如今均写思路实现代码。

图片

相关文章
相关标签/搜索