1 Star 4 Fork 3

sxran / sxran-im

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

经历过程

  • 从2020年疫情以来,在家第一次接触IM的之后,就拥有了这个社交梦。
  • 第一个APP尝试了云厂商的IM插件,的确能快能出来,但是高额的费用,个人承受不了。
  • 第二个APP尝试从淘宝买了一个防微信的IM,前后端一体,抛开代码细节,想整合我其他模块的内容也是一个灾难。
  • 因为APP没有流量,之后转做小程序,采用市面上的开源项目,整合起来也是费劲。而且大多也是半开源,语音视频通话(或者其他的)需要付费。 【其实这种买断类型的也还可以接受,毕竟别人也要生活】
  • 之后的uni-im腾空出世,我内心小小激动一把。毕竟他不是买断类型,而是交的服务器费用,性价比更高。【的确很多优点:插件化页面,支持其他的服务端】
  • 至此,向先前辈敬礼,还是没有解决如何整合我原有其他项目的生态逻辑。
  • 开始再次造轮子做这个项目。

项目架构

  • 采用微服务的思想处理后端逻辑。 【 通信中心 + 自有后端 , 他们采用http处理】
  • 前端ws连接【通信中心】,并只和【通信中心】交互。
  • 【通信中心】 仅仅负责通信,和一些固定场景的通信逻辑的处理(根据业务的返回值处理),如添加好友需要给对方发送通知。
  • 【自有后端】 做具体的业务逻辑处理,存储内容,http返回值来控制【通信中心】的最终业务逻辑处理。

项目简介

  • 项目前端使用uniapp,源码由官方的其他多个im项目引申而来。 【 主要持续完善官方的:插件化页面,支持其他的服务端 】
  • 项目后端目前使用java + h2内嵌数据库,该项目仅仅用于快速搭建后端【性能不高】。
  • 如果后端不希望使用java,那也只需要对应的http接口,入参和出参保持不变一致就行。
  • 每个都有扩展对象来支持额外的前端业务需求。
  • 该项目的前端已经连接啦demo后端示例,你也可以不搭建后端,来体验前端的源码。
  • 到此可以看到我的愿望是做一个标准,各个前后端都可以替换的开源项目。 【标准:页面对应的字段确定,ws交互的确定,】
  • 如果你想替换前端,那么有个ws的js你是可以直接用的,其他的一些额外逻辑单独处理一下。
  • 如果你想整体替换后端,包括【通信中心】那么请你按照ws的js逻辑做一套后端处理就行。
  • 如果你仅仅只想要整合后端,只要把数据库切换一下,在自己的项目中新加一个http接口来处理所有的业务逻辑适配一下就行。
  • 如果你不希望任何开发的话,可以用一整体的前后端,你仅仅提供一个数据库连接就行。

特点优势

  • 性价比高;【仅仅通信中心的流量收费,毕竟大家都是小众开发者】
  • uni-im的前端优势,都会加进来。
  • 如果不转行,就一直搞社交。
  • 完全免费的视频/语音通话。
  • 已兼容pc端的处理,后续会有多端支持。
  • 离线通知,直播,后续会慢慢加上的。
  • 其他相关的需求也可以联系我来优先处理。

使用须知

  • 下载后的目录结构: src 就是java的后端;openvidu-vue 音视频页面 ; uni-app就是对应的前端;
  • 默认仅仅需要启动前端就可以啦。
  • 后端目前【通信中心】只支持本地,如果需要会尽快上线。 【现在还是优先完善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个视频可能会报错。

手机扫码体验

浏览器体验

点我体验

联系客服

响应平台政策,不再提供啦。

除非平台有单独授权,否则插件作者不得在插件主页和uni-im中提供其他联系方式,不得引导插件使用者私下交易。

功能介绍

  • 目前的功能,除了APP离线推送,其他的和uni-im的功能一致。
  • 视频通话

聊天页面

  • ui支持敏感词过滤: 发送【涉黄】敏感词将被过滤掉
  • 支持表情,图片,视频,视频通话

版权说明

现在、未来都不会有商业版本,所有开源代码,免费商用!!
明确使用的是 MIT 的版权形式,可以放心闭源和商业化2开。
因为版权问题找一圈没有找到合适的UI项目,所以UI还是自己写。

版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看源码,不能用,一用就会侵犯版权。

鸣谢

工具库

竞品库

下一个计划

  1. 打算自己使用起来正式成为1.0版本【目前已上线且正在使用】。持续修复使用过程中的bug。
  2. 离线通知的修改处理。
MIT License Copyright (c) 2024 嗨喽世界 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

快速实现聊天交友社交IM音视频通话,即时通讯私聊/群聊/好友/支持千人大群消息推送提醒,支持发送图片、语音、小视频、坐标、外链、红包、文件等自定义im消息,支持自定义的服务端。 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/sxran/sxran-im.git
git@gitee.com:sxran/sxran-im.git
sxran
sxran-im
sxran-im
master

搜索帮助