# weixin_chat **Repository Path**: monkeyhlj/weixin_chat ## Basic Information - **Project Name**: weixin_chat - **Description**: 一个仿微信的H5+应用,使用mui组件库来构建接近原生APP的应用。后端采用springboot + mybatis,使用netty搭建websocket服务器用于聊天功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-05-04 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 仿微信APP > 实现了微信聊天,通讯录,发现,用户注册和登陆,头像上传,二维码生成。 ### 技术栈 * Springboot * Netty * FastDfs * mui(构建APP的UI框架) * 前端开发环境:HBuilder ### 具体功能分析 > #### 我 > > * 头像上传,昵称修改,二维码 > > #### 发现 > > * 搜索朋友,精确搜索,根据用户名搜索 > * 扫一扫,二维码中扫描结果是这个:muxin_qrcode:[username],和添加好友调用同一个结果,当然为了安全可以对结果加密,在后端解密 > * 添加朋友后,等待对方同意 > > #### 通讯录 > > * 好友列表(当触发事件,如对方同意好友请求,需要把好友列表重新拉取,刷新缓存),对于不需要高实时数据,缓解数据库压力,使用客户端缓存。 > * 聊天功能页面(显示最新消息;没有输入内容,按钮为灰色;键盘出现后,整个窗口高度从全屏变为半屏;判断是否用网络,否则无法发送消息;消息需要显示最后一条,可以监听屏幕宽度改变事件) > * 发消息(如果交互时发生异常,移除channel;发送消息后在发送方前端渲染,使用DOM操作元素,然后netty处理后把消息传给接收端渲染,并把消息保存到到各自的聊天记录和快照缓存中;需要考虑 到接收方异常,但消息已保存到记录中,需要等待签收,签收的意思到了接收方手机上,所以每次重连需要拉取未签收信息,并把消息保存到聊天记录和快照缓存中。) > > #### 首页 > > * 删除快照(发过消息的都需要显示在首页,左滑可以选择删除快照) > * 未读消息(只需要判断是否进入聊天页面即可) 还有mui.ajax中请求的ip不能是localhost和127.0.0.1,测试时需要用局域网ip。我当时是手机开WIFI,所以电脑和手机在同一局域网下,可以进行调试。 ### FastDfs环境安装 > 这里我使用docker安装的,比较方便快捷。在部署上可以与其它开发环境隔离。