此仅为爱喵日记程序的进阶记录文章而已。
1.0版本 仅考虑实现业务逻辑。后续再考虑性能优化
项目解决了什么样的事情?
实现了一个完全独立的IM工具!
曾经开发过某App的聊天功能。但耦合度太高了。不能独立出来了。
于是全新开发。以适配爱喵日记!以及未来的其他项目。
(爱喵的喵发、配图与文章无关)
项目需要用的技术框架?
后端采用Nodejs、socket.io。
数据库采用Mongodb。
前端采用AinuUI组件库里的聊天工具组件、自动适配爱喵IM API。
项目开发流程?
开发重点是后端、前端则主要是适配工作。
后端是完全独立的NODE程序。数据库最好也是独立的。
可以通过配置文件自动配置数据库。也可以是爱喵日记的数据库。仅数据集合不一样而已。
应用验证则是通过应用账号、前端和后端通过一定签名算法匹配appid和appkey。
匹配出来后、则可以由前端传入UserID作为该应用下的唯一用户凭证。
在任何一次聊天前必须进行信息匹配验证。将userid和其他如头像昵称等相关信息传入给后端存储进聊天用户集合。用应用appid作为区分。新用户则创建资料。老用户则更新资料。
并创建ws连接、开始聊天。
之后的聊天操作均以appid和userid作为唯一凭证即可。
通过Appid区分不同应用的好处?
这就可以做到不同网站不同应用接入爱喵聊天IM程序的时候。可以通过不同的appid进行适配了、一套IM程序互不干扰。(万一今后有其他程序会接入呢?或者是我自己开发了新的个人项目呢?是吧)。
独立程序。独立维护。完全独立!
前端AinuUI里的IM组件。
后端独立的Node程序。
如何运行?简单粗暴?
运行程序的时候。
前端只需要在IM组件初始化的时候填入正确的api地址、appid、appkey、密钥关键词。
后端只需要在配置文件里填入正确的数据库连接账户、app数组(包含appid和appkey、所属密钥关键词)即可实现使用与操作。
(appid和appkey在初始化的时候可以数组、也就是不同应用。)
远期展望
近期app应用列表通过配置文件创建。而远期则通过管理后台的方式创建。