介绍
OpenIM:由前微信技术专家打造的基于 Go 实现的即时通讯(IM)开源项目,包括IM服务端和客户端SDK。开发者私有化部署,基于SDK二次开发,可以轻松替代第三方IM云服务,打造具备聊天、社交功能的app。无论是开发同城交友、企业办公亦或是当今最热门的元宇宙,还是在应用中集成IM功能,都非常便捷。OpenIM代码100%开源,开源协议Apache-2.0 License任何企业和个人都可以免费使用(包括商用)。
请各位看官多多支持,转发和宣传,助力OpenIM成为开源IM的No1
web端体验地址
项目成果
截止到今天,github star数量达到6k,开源IM项目的领跑者
OpenIM不是个人兼职项目, 是商业化全职团队运作,有针对性VIP客户的收费服务,保证项目长期健康发展。
本周重点特性
客户端SDK v1.0.7
pc web demo第二版发布,多端同步,群组功能完善新特性支持免打扰功能:设置接收消息不提醒;设置不接收消息新特性修复bug:同一个手机重复登录和踢出bug修复
服务端 v1.0.6
支持免打扰功能:设置接收消息不提醒;设置不接收消息新特性支持iOS推送新特性
docker已更新,请拉取最新镜像,docker部署常见问题总结分析和解决办法 见文档: https://doc.rentsoft.cn/demo/server_deploy/docker_singe.html
OpenIM每周都会迭代发布新版本,主要针对bug修复和系统优化,特别值得注意的是,版本号的第一位数字代表大版本,一般是做了协议改造升级,服务器和客户端两者必须保持大版本一致。
分支说明:(1)dev:外部开发者在此分支上提交pr; (2)tuoyun:OpenIM内部专用;(3)main:最新可用分支;
服务端一键部署
docker 安装、启动
安装
curl -sSL https://get.daocloud.io/docker | sh
或者
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动、停止
重启docker服务
sudo service docker restart
关闭docker
sudo service docker stop
docker-compose安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
部署
如果确定是首次安装,可以直接采用如下命令完成1-4步
git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive; cd Open-IM-Server/script ; chmod +x *.sh ; ./env_check.sh;cd .. ; docker-compose up -d;cd script ; ./docker_check_service.sh
端口开放
需要开通外网端口(TCP):17778(消息,必须开),10000(API,必须开), 30000(jssdk专用,需要才开), 42233 (短信验证码端口,需要才开),25(邮箱验证码端口,需要才开)
如果check成功,但是端口连接不上,一般是端口开放或者防火墙问题导致。
当然也可以不开通以上端口,而通过nginx做转发。
web端一键部署
环境要求
-
node 14.17.5+
开发测试
-
拉取项目
git clone https://github.com/OpenIMSDK/Open-IM-PC-Web-Demo.git
-
安装依赖
npm install
-
修改配置
配置文件位置为:src/config/index.ts
项目默认配置地址为OpenIM测试服务器地址,若您已部署OpenIM-Server在自己的服务器上,需要修改为对应地址,否则可跳过此步骤。
项目默认使用腾讯云COS服务,可根据需求自行更改文件存储服务。
// 注册服务地址 export const AXIOSURL = "http://47.112.160.66:42233" // axios请求超时时间 export const AXIOSTIMEOUT = 60000 // OpenIM-Server JS SDK port export const IMURL = "ws://47.112.160.66:30000" // 获取cos临时密钥地址 export const COSAUTHORIZATIONURL = "http://47.112.160.66:10000" // cos bucket export const COSBUCKET = "echat-1302656840" // cos region export const COSREGION = "ap-chengdu" // cos 缩略图格式配置 export const PICMESSAGETHUMOPTION = "?imageView2/1/w/200/h/200/rq/80"
-
Web运行调试
默认运行端口为3000
npm run start:renderer
-
打包部署
打包生成文件在项目根目录build文件夹下,将文件夹内容上传服务器部署即可。
npm run build:renderer
重点特性展示
关于我们
托云信息技术(成都)有限公司
我们致力于通过开源模式,为全球企业/开发者提供简单、易用、高效的IM服务和实时音视频通讯能力,帮助开发者降低项目的开发成本,并让开发者掌控业务的核心数据。
开源的价值
从公司成立之初就将“开源”作为核心战略来推进,开源充分体现了自由、平等、分享的互联网精神。
全球范围频繁发生的数据泄露、勒索病毒、隐私滥用等安全事件一次次给企业敲响警钟,企业管理者对数据资产的价值、数据安全的重要性有了更清晰的认识,数据安全成就企业核心价值。
IM作为核心业务数据,安全的重要性毋庸置疑,OpenIM开源以及私有化部署让企业能更放心使用。
我们的团队
创始团队来自前微信技术团队,我们致力于用开源技术创造服务价值,打造轻量级、高可用的IM架构,开发者只需简单调用 SDK,即可在应用内构建多种即时通讯及实时音视频互动场景。
OpenIM邀请全球技术极客参与技术优化,让开发者轻松集成,让每一个应用都具备IM功能,同时考虑企业的接入成本、服务器资源以及最重要的数据安全性和私密性。
OpenIM有什么特色
(1) 开源永久免费
代码全部开源,永久免费,包括客户端和服务端,由前微信技术专家打造,并邀请全球技术极客参与建设。开源协议Apache-2.0 License任何企业和个人都可以免费使用(包括商用),但必须在应用启动页加上 :由OpenIM提供技术支持
(2) 易扩展
服务端采用golang实现,首创“一切皆消息”的通讯模型,轻松实现自定义消息和扩展功能。,无论是已读回执,群通知等都采用此模型,复用消息通道。
(3) 专业技术服务
每个技术人员都承担技术客服的角色,强化社区,及时解答。搭建微信社区,telegram群组,github上issue和社群互动,提升问题解决效率。
(4) 高性能
借鉴并优化通讯架构,抽象在线消息、离线消息、历史消息存储模型,分层治理架构,支持集群部署,平行扩展。
(5) 安全
代码全部开源,服务端私有化部署,数据自我掌控。数据安全大于天,中华人民共和国个人信息保护法有效保护用户信息不受侵犯。
(6) 全平台支持
sdk通过golang实现,通过gomobile生成 aar和framework,统一架构,支持Andorid、iOS原生开发,支持Flutter、uni-app跨端开发,支持小程序、React等所有主流web前端技术框架, PC支持Electron,Flutter、iOS、uni-app、pc已有成熟demo可以体验。
开发者可以使用OpenIM替代市场上各种IM云服务,除了降低成本,还赋予开发者更多的灵活性和自主性。我们通过开源的方式,邀请全球技术极客来参与OpenIM建设,使每位开发者都能免费使用最优秀的IM组件,让每个app都具备即时通讯能力。
有疑问加站长微信联系(非本文作者)