微信聊天框架的搭建

原文地址: 戳这里


XZ_WeChat高仿微信聊天框架的搭建,工程地址:https://github.com/corderguo/XZ_WeChat


效果图展示:

11
2


做了两年IM相关工作了,去年是集成环信的SDK实现的IM功能,今年公司拥有自己的长连接服务器,于是从头自己定协议然后一步步实现了IM的整体功能,基本把微信IM有关的内容都实现了。最近开始整理过去的一些知识,于是先从聊天框架下手,我从项目中抽出这个简易的聊天框架,方便大家学习交流。

由于该框架是我用最快的时间从原项目中抽出来的,摘除了本地缓存的功能(这部分内容太多了),所以里面或多或少有一些我原项目中的业务逻辑,不过不要紧,这不会影响你对聊天框架的学习,我也会逐渐把该框架规范起来。

由于作者的电脑环境被折腾坏了,不能安装cocoapods来管理一些用到的三方,所以直接导入进了该框架,这一点大家不要学习。

该框架目前支持的消息类型:文本消息(包含表情),图片消息,语音消息,视频消息,文件消息(pdf,word,excel,ppt,png,html等格式)。

如果你想展示文件消息,你需要把文件拷贝到沙盒的/Library/Caches/Chat/File目录下,由于我以前是从PC端发送文件到手机端进行的展示,所以目前只能你手动拷贝了。

项目中展示的视频已经转成了mp4类型,而且也经过了压缩,语音也转换成了amr格式,节省流量的同时,可以和安卓端兼容。

你能从该框架学习到什么:

  • 聊天框架的搭建
  • 表情键盘的实现
  • 语音相关的知识
  • 视频相关的知识
  • 文件相关的功能
  • 转场动画相关的知识
  • 数据模型和尺寸模型分离
  • 你能清楚的了解到在实战项目中IM的实现

目前该框架这是初步,我还有好多功能没有加入进去,后续会慢慢加入,包括:

  • 消息的转发、拷贝、撤回
  • 文章的分享
  • 订阅号的功能
  • 红包的功能
  • 本地缓存的功能(其实很多功能都要基于数据库的,我把数据库去除掉后,很多功能就一块去除了)
  • 草稿箱的功能
  • 等等等还有好多好多

更新日志

10月8日:添加了消息的拷贝、删除、撤回功能,由于转发功能需要用到数据库所以我只添加了转发的UI,等添加了数据库后再完善。注意这里的只有自己的消息并且是发送成功的消息才可以撤回,我这里限制的是5分钟内的消息可以撤回,超过规定时间不允许撤回。

10月12日:添加了系统消息,当消息撤回的时候聊天界面上提示一条你撤回了一条消息的提示。当多人聊天的时候,如果一方撤回了一条消息,系统应该给你发送一条指令,根据这条指令你识别出是哪一条消息被撤回了,然后删除这条消息,并且插入一条谁谁撤回了一条消息


-------

原文地址: 戳这里



### 使用Docker容器化部署微信聊天应用 #### 准备工作 确保已经安装并配置好Docker环境。对于Ubuntu 20.04,可以按照官方指南完成Docker的安装[^1]。 #### 创建网络以便通信 为了使不同服务之间能够互相访问,建议创建自定义桥接网络: ```bash docker network create wechat-network ``` #### 获取并启动微信容器 拉取预先构建好的微信镜像,并运行容器。这里假设使用的是`bestwu/wechat`这个经过验证能正常工作的镜像版本: ```bash docker pull bestwu/wechat docker run --name=wechat -d --network=wechat-network bestwu/wechat ``` 这会下载最新版的微信客户端镜像,并将其作为后台守护进程启动,在名为`wechat-network`的虚拟网络内运行。 #### 构建API服务器用于发送消息 基于提供的信息,似乎存在一种通过HTTP API接口向特定微信群聊发送消息的服务方案[^3]。为此需开发或获取一个实现了相应功能的应用程序映像,该应用程序应监听端口(如3000),提供RESTful风格的消息传递接口。 假设有这样一个预构建的镜像叫做`my-wechat-bot`: ```bash docker pull my-wechat-bot docker run --name=my-wechat-bot -p 3000:3000 --network=wechat-network -d my-wechat-bot ``` 这段命令将会把本地机器上的3000端口映射到容器内部的服务上,允许外部请求到达此API服务器;同时也加入了之前建立的同一网络中以方便与其他组件交互。 #### 测试消息发送能力 现在可以通过POST请求测试是否可以从外界成功调用API来发送消息至目标群组。例如利用curl工具执行如下操作: ```bash curl -X POST http://localhost:3000/api/send-message \ -H 'Content-Type: application/json' \ -d '{"roomId":"example-room-id","message":"Hello from Docker!"}' ``` 如果一切设置无误,则应该可以看到返回的成功响应以及相应的确认信息。 #### 卸载清理 当不再需要这些资源时,记得妥善处理掉相关容器及其依赖项: ```bash docker stop wechat my-wechat-bot docker rm wechat my-wechat-bot docker rmi bestwu/wechat my-wechat-bot ``` 以上步骤展示了如何借助Docker技术快速搭建起一套简易但完整的微信聊天解决方案框架。当然实际生产环境中可能还需要考虑更多因素比如安全性、持久存储等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值