更新记录

0.9.0(2024-04-22)

  1. 失败重连操作。
  2. pc端的代码模式。
  3. 修复pc端的其他小问题。 TODO pd端还有很多细节需要处理修复。

0.8.0(2024-04-19)

  1. 添加登陆/注册 示例。【没办法引入啦http,自己整合时需要注意】
  2. PC端的适配ok。

0.7.0(2024-04-16)

  1. 增加开源协议。
  2. 添加注册内容。
  3. 下一步将自己使用。
查看更多

平台兼容性

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

运行

技术使用

音视频私有化部署

这是免费的哈:见源码的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. 打算自己使用起来正式成为1.0版本【目前已上线且正在使用】。持续修复使用过程中的bug。
  2. 离线通知的修改处理。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问