更新记录
0.9.0(2024-04-22)
- 失败重连操作。
- pc端的代码模式。
- 修复pc端的其他小问题。 TODO pd端还有很多细节需要处理修复。
0.8.0(2024-04-19)
- 添加登陆/注册 示例。【没办法引入啦http,自己整合时需要注意】
- PC端的适配ok。
0.7.0(2024-04-16)
- 增加开源协议。
- 添加注册内容。
- 下一步将自己使用。
平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.01 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | √ | √ | √ | √ | × | × | × | √ |
经历过程
- 从2020年疫情以来,在家第一次接触IM的之后,就拥有了这个社交梦。
- 第一个APP尝试了云厂商的IM插件,的确能快能出来,但是高额的费用,个人承受不了。
- 第二个APP尝试从淘宝买了一个防微信的IM,前后端一体,抛开代码细节,想整合我其他模块的内容也是一个灾难。
- 因为APP没有流量,之后转做小程序,采用市面上的开源项目,整合起来也是费劲。而且大多也是半开源,语音视频通话(或者其他的)需要付费。 【其实这种买断类型的也还可以接受,毕竟别人也要生活】
- 之后的uni-im腾空出世,我内心小小激动一把。毕竟他不是买断类型,而是交的服务器费用,性价比更高。【的确很多优点:插件化页面,支持其他的服务端】
- 至此,向先前辈敬礼,还是没有解决如何整合我原有其他项目的生态逻辑。
- 开始再次造轮子做这个项目。
项目架构
- 采用微服务的思想处理后端逻辑。 【 通信中心 + 自有后端 , 他们采用http处理】
- 前端ws连接【通信中心】,并只和【通信中心】交互。
- 【通信中心】 仅仅负责通信,和一些固定场景的通信逻辑的处理(根据业务的返回值处理),如添加好友需要给对方发送通知。
- 【自有后端】 做具体的业务逻辑处理,存储内容,http返回值来控制【通信中心】的最终业务逻辑处理。
项目简介
- 项目前端使用uniapp,源码由官方的uni-im项目引申而来。 【 主要持续完善官方的:插件化页面,支持其他的服务端 】
- 项目后端目前使用java + h2内嵌数据库,该项目仅仅用于快速搭建后端【性能不高】。
- 如果后端不希望使用java,那也只需要对应的http接口,入参和出参保持不变一致就行。
- 每个都有扩展对象来支持额外的前端业务需求。
- 该项目的前端已经连接啦demo后端示例,你也可以不搭建后端,来体验前端的源码。
- 到此可以看到我的愿望是做一个标准,各个前后端都可以替换的开源项目。 【标准:页面对应的字段确定,ws交互的确定,】
- 如果你想替换前端,那么有个ws的js你是可以直接用的,其他的一些额外逻辑单独处理一下。
- 如果你想整体替换后端,包括【通信中心】那么请你按照ws的js逻辑做一套后端处理就行。
- 如果你仅仅只想要整合后端,只要把数据库切换一下,在自己的项目中新加一个http接口来处理所有的业务逻辑适配一下就行。
- 如果你不希望任何开发的话,可以用一整体的前后端,你仅仅提供一个数据库连接就行。
特点优势
- 性价比高;【仅仅通信中心的流量收费,毕竟大家都是小众开发者】
- uni-im的前端优势,都会加进来。
- 如果不转行,就一直搞社交。
- 完全免费的视频/语音通话。
- 已兼容pc端的处理,后续会有多端支持。
- 离线通知,直播,后续会慢慢加上的。
- 其他相关的需求也可以联系我来优先处理。
使用须知
- 下载后的目录结构: src 就是java的后端;openvidu-vue 音视频页面 ; uni-app就是对应的前端;uni-im_example 是对应uni-im的源码镜像方便对比。
- 默认仅仅需要启动前端就可以啦。
- 后端目前【通信中心】只支持本地,如果需要会尽快上线。 【现在还是优先完善im的功能,毕竟是独立开发者精力有限】
- 欢迎大家提issue
运行后端(非必须)
说明:
- 默认的前端使用的是公网已经部署的该项目对应的后端; 所以这一步可以不需要
- 该后端使用的是java11;请为idea设置对应的java版本。 (必须,第三方的音视频sdk要求.)
- 该项目的后端仅仅是示例形式,肯定做不了商业版。 比如h2数据库,注册,敏感词,上传文件等形式肯定是需要优化的,同时还应该根据自己的业务做特殊优化。
- 该后端涉及: 简单的http业务处理(如:注册和登陆),连接通信中心,音视频交互的需要http接口。
- 运行application
mvn spring-boot:run
- 部署application
mvn clean package
运行前端
说明
- 会尽可能的使用ws,也就是一个js文件交互。
- 对于http的依赖目前迫不得已加上了,用户注册和用户登陆。(实际这里的业务需要和自己的处理)【必须要引入http的短连接,ws必须鉴权才能连接的原则是不能改的。】
- 目前自己也正在使用,欢迎在内部添加我好友
sxran-im
。 帮忙一起测试完善
安装依赖
npm install
运行
- 用hx就直接开发uni-app运行就行。
- WebStorm开发uniapp代码提示及编译运行方法 非vue-cli创建项目
技术使用
- 同一个浏览器,需要开2个浏览器账号来登陆不同账号使用,因为用户信息是放到本地存储的。
- 默认拥有1,2,3的账户id。 密码为123456
音视频私有化部署
这是免费的哈:见源码的openvidu-vue/README.md
- 快速体验
- 注意:使用时不能是Safari相关的内容否则 控制台会报错:
Browser Safari (version 16.6) for iOS is not supported in OpenVidu
- 在IM中的h5使用只能是localhost,或者部署到https服务器中才能使用。
- 如果被别人占用啦,可能会报错,多刷新等待几次。 同一机器不能开2个视频可能会报错。
手机扫码体验
浏览器体验
联系客服
qq: 873406903
qq群: 726136542
因为微信群需要更新二维码,就不使用啦。
功能介绍
- 目前的功能,除了APP离线推送,其他的和uni-im的功能一致。
- 视频通话
聊天页面
- ui支持敏感词过滤: 发送【涉黄】敏感词将被过滤掉
- 支持表情,图片,视频,视频通话
鸣谢
下一个计划
- 打算自己使用起来正式成为1.0版本【目前已上线且正在使用】。持续修复使用过程中的bug。
- 离线通知的修改处理。