即时通讯(IM)开源项目OpenIM每周迭代版本发布-音视频实时通话-v2.0.4

【原创】开源OpenIM:轻量、高效、实时、可靠、低成本的消息模型 【原创】开源OpenIM:轻量、高效、实时、可靠、低成本的消息模型 1、内容概述 一套完整IM系统中,除开基本的业务设计,消息模型的设计是其中最为关键的一环,它关系到整个IM系统的可靠性、高效性、稳定性,因此需要设计一套合理的消息传递收发机制以承载IM的各种需求,OpenIM结合具体的业务场景,提炼出IM后端的重要接口,并经过反复推敲,验证,设计出了自己的一套通信协议OMTP,协议中每个字段尽量的减少冗余,使其精简高效、最大限度的满足现有的业务需求并能够支持业务的水平拓展,同时为了达到消息的实时可靠与高效, 阅读详情

介绍

OpenIM每周五发布新版,包括新特性发布,bug修复,同时合并PR

由于2.0版本重构完毕,架构更清晰,代码更规范,先邀请各位参与OpenIM社区建设,包括技术开发,技术分享等,特性开发,性能优化,bug修复等,有兴趣的同学可以加我私聊。

在这里插入图片描述

可以多人音视频聊天,以及多端同步呼叫。

web端体验:https://open-im-online.rentsoft.cn/

安卓端体验:https://www.pgyer.com/OpenIM

iOS端体验:https://testflight.apple.com/join/79cQqBYd

项目成果

项目整体超过7K star,我们继续努力争做开源IM的领跑者,请大家多多支持。消息通过经过压测和可靠性测试,请放心用于生产环境。

在这里插入图片描述

性能及容量总结

服务器资源:8核16G内存, 6个机械磁盘,每个磁盘100G, 用于mongo分片,10MB带宽。

容量:用户容量10万以上,消息条数10亿条。

性能评估:同时在线用户10万,每秒钟发送消息900条,消息延时1秒(从发送者发出消息到接收到消息)

可靠性总结

启动sdk,模拟50个用户在线、离线情况,消息可靠性100%。

发送10万消息,有3条失败,其他消息都能被对方精确收到,并成功落地本地db。对于失败的3条消息,接收方确实没有收到,系统消息是一致的。

github地址:https://github.com/OpenIMSDK/Open-IM-Server

开发者中心:https://doc.rentsoft.cn/#/

本周版本 客户端SDK v2.0.3 &&服务端 v2.0.4

特性 类别
群聊已读,发送者能看到本条消息哪些人已读,哪些人未读,对于办公场景极为有用 新特性
音视频通话优化,信令通道建设 新特性
消息发送失败,点击可重新发送 新特性
消息免打扰,接收但不提醒 新特性
动态表情包添加 新特性
聊天背景设置 新特性
etcd在keepalive失败时容错 bug修复
聊天记录中昵称和头像实时同步,多端同步 bug修复
发消息 好友权限验证 ,可配置 bug修复
docker镜像v2.0.4 已更新,请拉取最新镜像, 见文档:https://doc.rentsoft.cn/#/demo/server_deploy/docker_singe

OpenIM每周都会迭代发布新版本,别值得注意的是,版本号的第一位数字代表大版本,一般是做了协议改造升级,服务器和客户端两者必须保持大版本一致。

分支说明:

(1)dev:外部开发者在此分支上提交pr;

(2)tuoyun:OpenIM内部专用;

(3)main:最新可用分支;(建议大家用tag版本)

开发中的特性

特性 预计完成时间
私聊消息可选择阅后即焚 3月25日
删除历史记录云端同步 3月25日
群管理:解散群,禁言,昵称修改等 4月1日
第三方通知类型:比如oa通知,hr通知等 4月1日
音视频通话相关rtc信令接口

音视频监听回调说明

音视频通话监听,在login之前调用SetSignalingListener(callback open_im_sdk_callback.OnSignalingListener)设置

type OnSignalingListener interface {
//被邀请者收到:音视频通话邀请
OnReceiveNewInvitation(receiveNewInvitationCallback string)
receiveNewInvitationCallback为
{
“opUserID”: “18666662412”,
“invitation”: {
“inviterUserID”: “18666662412”,
“inviteeUserIDList”: [
“18349115126”
],
“groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,
“roomID”: “room_id_111”,
“timeout”: 1000,
“mediaType”: “video”,
“sessionType”: 2
},
“offlinePushInfo”: { }
}

//邀请者收到:被邀请者同意音视频通话
OnInviteeAccepted(inviteeAcceptedCallback string)
inviteeAcceptedCallback为
{
“opUserID”: “18349115126”,
“invitation”: {
“inviterUserID”: “18666662412”,
“inviteeUserIDList”: [“18349115126”],
“groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,
“roomID”: “room_id_111”,
“timeout”: 1000,
“mediaType”: “video”,
“sessionType”: 2
},
“offlinePushInfo”: {}
}

//邀请者收到:被邀请者拒绝音视频通话
OnInviteeRejected(inviteeRejectedCallback string)
inviteeRejectedCallback为
{
“opUserID”: “18349115126”,
“invitation”: {
“inviterUserID”: “18666662412”,
“inviteeUserIDList”: [“18349115126”],
“groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,
“roomID”: “room_id_111”,
“timeout”: 1000,
“mediaType”: “video”,
“sessionType”: 2
},
“offlinePushInfo”: {}
}

//被邀请者收到:邀请者取消音视频通话
OnInvitationCancelled(invitationCancelledCallback string)
invitationCancelledCallback为
{
“opUserID”: “18666662412”,
“invitation”: {
“inviterUserID”: “18666662412”,
“inviteeUserIDList”: [
“18349115126”
],
“roomID”: “room_id_111”,
“timeout”: 10,
“mediaType”: “video”,
“platformID”: 1,
“sessionType”: 1
},
“offlinePushInfo”: { }
}
//邀请者收到:被邀请者超时未接通
OnInvitationTimeout(invitationTimeoutCallback string)
invitationTimeoutCallback为
{
“opUserID”: “18666662412”,
“invitation”: {
“inviterUserID”: “18666662412”,
“inviteeUserIDList”: [“18349115126”],
“roomID”: “room_id_111”,
“timeout”: 10,
“mediaType”: “video”,
“platformID”: 1,
“sessionType”: 1
},
“offlinePushInfo”: {}
}

//被邀请者(其他端)收到:比如被邀请者在手机拒接,在pc上会收到此回调
OnInviteeRejectedByOtherDevice(inviteeRejectedCallback string)
//被邀请者(其他端)收到:比如被邀请者在手机接听,在pc上会收到此回调
OnInviteeAcceptedByOtherDevice(inviteeAcceptedCallback string)

音视频邀请invitationInfo结构说明

音视频邀请相关信息
{
“inviterUserID”: “18666662412”, //邀请者UserID
“inviteeUserIDList”: [“18349115126”], //被邀请者UserID列表,如果是单聊只有一个元素
“groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”, //如果是单聊,为""
“roomID”: “room_id_111”, //房间ID,必须唯一,可以不设置。
“timeout”: 1000, //邀请超时时间(秒)
“mediaType”: “video”, //video 或者audio
“sessionType”: 2 //1为单聊,2为群聊
“platformID”:1 //和之前定义一致
}

metadata是参与者信息具体为
ParticipantMetaData
{
GroupInfo //为群通话时有效
GroupMemberInfo //为群通话时有效
PublicUserInfo
}

音视频函数参数及回调说明

SignalingInvite(callback open_im_sdk_callback.Base, operationID string, signalInviteReq string)
说明:邀请个人加入音视频
请求参数:
{
“invitation”: {
“inviteeUserIDList”: [“18349115126”], //只有一个元素
“roomID”: “room_id_111”,
“timeout”: 1000,
“mediaType”: “video”,
“sessionType”: 1,
“platformID”:1
}
“offlinePushInfo”:{}
}

回调:成功时,OnSuccess回调
{
“token”: “18666662412”,
“roomID”: “room_id_111”,
“liveURL”: “wss://”
}

SignalingInviteInGroup(callback open_im_sdk_callback.Base, operationID string, signalInviteInGroupReq string)
说明:邀请群里某些人加入音视频
请求参数
{
“invitation”: {
“inviteeUserIDList”: [“18349115126”],
“groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,
“roomID”: “room_id_111”,
“timeout”: 1000,
“mediaType”: “video”,
“sessionType”: 2
}
}

回调:成功时,OnSuccess回调
{
“token”: “18666662412”,
“roomID”: “room_id_111”,
“liveURL”: “ws://”
}

SignalingAccept(callback open_im_sdk_callback.Base, operationID string, signalAcceptReq string)
说明:同意某人音视频邀请
请求参数
{
“opUserID”: “18349115126”,
“invitation”: {
“inviterUserID”: “18666662412”,
“inviteeUserIDList”: [
“18349115126”
],
“groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,
“roomID”: “room_id_111”,
“timeout”: 1000,
“mediaType”: “video”,
“sessionType”: 2
}
}

回调:成功时,OnSuccess回调
OnSuccess
{
“token”: “18349115126”,
“roomID”: “room_id_111”,
“liveURL”: “”
}
SignalingReject(callback open_im_sdk_callback.Base, operationID string, signalRejectReq string)
说明:拒绝某人音视频邀请
请求参数
{
“opUserID”: “18349115126”,
“invitation”: {
“inviterUserID”: “18666662412”,
“inviteeUserIDList”: [
“18349115126”
],
“groupID”: “f2e77b9ec33e92298675ad511fdfa6ab”,
“roomID”: “room_id_111”,
“timeout”: 1000,
“mediaType”: “video”,
“sessionType”: 2
}
}
回调:成功时,OnSuccess回调
OnSuccess{}

SignalingCancel(callback open_im_sdk_callback.Base, operationID string, signalCancelReq string)
说明:邀请者取消音视频通话
请求参数
{
“opUserID”: “18666662412”,
“invitation”: {
“inviterUserID”: “18666662412”,
“inviteeUserIDList”: [“18349115126”],
“roomID”: “room_id_111”,
“timeout”: 10,
“mediaType”: “video”,
“platformID”: 1,
“sessionType”: 1
}
}

回调:成功时,OnSuccess回调
OnSuccess{}
我们的团队

创始团队来自前微信技术团队,我们致力于用开源技术创造服务价值,打造轻量级、高可用的IM架构,开发者只需简单调用 SDK,即可在应用内构建多种即时通讯及实时音视频互动场景。无论是电子政务办公,企业协同办公,或者去中心化的web3应用,OpenIM都是最优选择。对于IM最核心的服务端和客户端SDK,大家可以免费商用,对于带有UI版本的客户端,需要商业授权,对于某些高级功能,也需要商业授权。

开源即时通讯(IM)项目OpenIM源码部署流程 由于OpenIM依赖的组件较多,开发者需求不一,导致OpenIM部署一直被人诟病,经过几次迭代优化,包括依赖的组件compose的一键部署,环境变量设置一次,全局生效,以及脚本重构,目前OpenIM部署比较丝滑,特写文章分享给大家。OpenIM是什么OpenIM不是一个独立的聊天产品,它不像telegram、Signal、rocket.chat那样是一个完全独立、可以直接安装使用的聊天应用程序。而是一个开源的即时通讯解决方案,为开发者提供了一系列的工具和服务,以便于他们在自己的应用程序中集成即时通讯功能。 阅读详情

相关推荐

OpenIM离线docker部署及应用

介绍OpenIM:由前微信技术专家打造的基于 Go 实现的即时通讯(IM)开源项目,包括IM服务端和客户端SDK。开发者私有化部署,基于SDK二次开发,可以轻松替代第三方IM云服务,打造具备聊天、社交功能的app。无论是开发同城交友、企业办公亦或是当今最热门的元宇宙,还是在应用中集成IM功能,都非常便捷。OpenIM代码100%开源,开源协议Apache-2.0 License任何企业和个人都可以免费使用(包括商用)。请各位看官多多支持,转发和宣传,助力OpenIM成为开源IM的No1。

qiuweifan的博客 3448

时不我待,拥抱趋势,开源IM项目OpenIM技术简介

同时,它还提供了完整的管理后台,帮助管理员监控和管理用户、群组、消息、通知等内容。OpenIM支持iOS和Android原生开发,并且也提供了Flutter、uniapp、React Native等跨平台开发框架的SDK,开发者可以根据自己的需求选择不同的开发方式。作为一款开源的IM项目,OpenIM提供了丰富的功能和完善的技术支持,吸引了众多开发者的关注和使用。对于iOS和Android原生开发,OpenIM提供了针对各个平台的SDK和相应的开发文档,开发者可以根据文档指引完成相应的集成和开发工作。

OpenIM的博客 6370

Open-IM源码部署

Open-IM源码部署

qwerty12392的博客 2118

紧跟潮流,抓住趋势,跟上全民AI的节奏,开源IM项目OpenIM产品介绍,为AIGC贡献力量

高度自主、安全可控、开放自由,私有化部署,一切皆可控透明度和可信度:开源软件的源代码是公开的,任何人都可以查看和检查代码,从而增强了软件的透明度和可信度。用户可以了解软件的内部结构和运作方式,发现和修复潜在的安全漏洞和错误。自由度和可定制性:开源软件允许用户自由地使用、复制、分发和修改软件代码。用户可以根据自己的需求和要求对软件进行自定义和定制,满足不同的业务需求。开放创新和协作:开源软件的源代码公开,鼓励开发者和用户之间的交流、合作和创新。

OpenIM的博客 2184

【IM开源推荐】前微信技术专家打造的开源的即时通讯组件OpenIM

Open-IM是由前微信技术专家打造的***开源***的即时通讯组件。Open-IM包括IM服务端和客户端SDK,实现了高性能、轻量级、易扩展等重要特性。开发者通过集成Open-IM组件,并私有化部署服务端,可以将即时通讯、实时网络能力快速集成到自身应用中,并确保业务数据的安全性和私密性。 Open-IM包括哪些模块 (一)客户端 (1) golang实现的跨平台的SDK:Open-IM-SDK-Core ,开发者不需要关心 (2)在Open-IM-SDK-Core 基础上生成的iOS版本SDK:Open.

OpenIM的博客 2648

【项目实战】开源的即时通讯组件OpenIM入门介绍

IM,是即时通讯(Instant Messaging,简称 IM)OpenIM,是一个开源的、强大的即时通讯组件。OpenIM,提供了完整的即时通讯服务功能。OpenIM,被设计为高并发、高可用、易于扩展的架构。OpenIM,适合构建企业级的即时通讯平台。OpenIM,由一群热爱开源技术的开发者创建。OpenIM,旨在提供一个高性能、稳定、易用的即时通讯解决方案。OpenIM,是由IM技术专家打造的开源的即时通讯组件。

奶爸的编程之路,也就一周冷个三天 3484

# github突破7k star 即时通讯(IM)开源项目OpenIM每周迭代版本发布

介绍 OpenIM每周五发布新版,包括新特性发布,bug修复,同时合并PR v2.0已经重构完毕,架构更清晰,代码更规范,邀请各位参与OpenIM社区建设有兴趣的同学可以加我私聊。 目前侧正在业务开发,已提供更多功能,包括群管理,阅后即焚,朋友圈,标签下发等。 web端体验:https://open-im-online.rentsoft.cn/ 安卓端体验:https://www.pgyer.com/OpenIM 项目成果 服务端超过7K star,OpenIM作为开源IM的领跑者,离不开大家的支持,消息

OpenIM的博客 1959

北斗B1频点信号捕获实战:如何应对NH码跳变带来的挑战?

本文深入探讨了北斗B1频点信号捕获中NH码跳变带来的核心挑战。针对NH码以1kHz速率调制导致的相干积分中断和相关峰畸变问题,文章提出并详细解析了一种基于伪码与多普勒频率分离技术的优化捕获方案。该方案通过差分处理消除NH跳变影响,并利用匹配滤波器与FFT分别进行码相位和多普勒频率的快速估计,有效提升了弱信号环境下的捕获灵敏度和稳定性,为北斗接收机设计提供了实用的工程参考。

joy55的博客 534

微信生态实时通讯难题:OpenClaw方案与腾讯云IM集成实践

即时通讯(IM)作为现代应用的核心能力,其底层原理依赖于长连接、消息队列与状态同步机制,以确保消息的实时、可靠与有序传递。这项技术的核心价值在于为在线客服、社交互动、团队协作等场景提供流畅的沟通体验。在微信小程序或公众号内构建复杂交互应用时,开发者常面临原生消息能力(如客服消息、模板消息)在实时性、状态管理和功能丰富度上的局限。此时,引入成熟的云IM PaaS服务成为高效解决方案。通过将腾讯云即时通信IM作为高可用的消息中枢,微信端仅作为交互界面,实现了业务逻辑与通讯能力的解耦。该方案特别适用于需要**消息

weixin_33859844的博客 496

实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码)

本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。

chair的专栏 1113

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 909

windows10部署OpenIM,及踩坑记录

windows10部署运行OpenIM

running17的博客 8191

软件设计师高频考点—套路题

学习交流的总结

秩沅 2539

openIM本地搭建遇到的问题

官方文档里有快速部署和源码部署,快速部署就是使用docker-compose一键部署,当然这个需要了解一些这方面的知识,源码部署就需要自己手动安装需要的组件,kafka,mysql,MongoDB,etcd,redis。在日志里一直在报这个错误,可以看出来是kafka的问题,我没有用过kafka,所以不是很熟悉,第一时间肯定想到去百度,相关的博客有很多,跟着弄了,但是都不能解决,最后还是在官方的技术交流群里一位大佬的提示下,想到了单独启动kafka看看有什么报错信息。

Liuxw666666的博客 2563

【软考】高项论文写作常见模板

本文主要介绍了YYYY年MM月DD日,我所在公司承接了XXXX项目的建设过程,包括了XXX,XXX,XXX内容,涉及到XXX,XXX,XXX技术。本人在项目中承载着项目经理的角色,主要负责了XXX,XXX,XXX方面事宜。此项目时间紧,任务重,实施过程中,我们特别注重了1、XXX 2、XXX 3、XXX几个方面,经过团队的一致努力,本项目按时交付,运行至今,客户反馈良好。但是在实施过程中,也曝露除了一些问题,包括了XXX,XXX等,通过应急处理和协调,这些问题都得到了妥善解决,没有影响到项目进度。

奶爸的编程之路,也就一周冷个三天 1686

计算机视觉安防监控升级:人脸识别与行为异常检测

计算机视觉安防监控升级:人脸识别与行为异常检测 ,人工智能,计算机视觉,大模型,AI,本文将深入探讨人脸识别与行为异常检测技术在安防监控中的应用,包括技术原理、算法实现、应用场景以及面临的挑战与解决方案。通过实际案例和代码示例,帮助读者更好地理解和掌握这些技术,为推动安防监控系统的智能化升级提供参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 23万+

「IM开源推荐」前微信技术专家打造,golang实现,一键部署,客户端SDK全平台支持,轻松替代IM云服务

背景 OpenIM成立之初就将“开源”作为核心战略来推进,开源充分体现了自由、平等、分享的互联网精神。 全球范围频繁发生的数据泄露、勒索病毒、隐私滥用等安全事件一次次给企业敲响警钟,企业管理者对数据资产的价值、数据安全的重要性有了更清晰的认识,数据安全成就企业核心价值。 IM作为核心业务数据,安全的重要性毋庸置疑,OpenIM开源以及私有化部署让企业能更放心使用。 如今IM云服务商收费高企,如何让企业低成本、安全、可靠接入IM服务,是OpenIM的历史使命,也是我们前进的方向。 优势 OpenIM:由前微信

OpenIM的博客 2450

25 - GRACE Mascon数据缺失月份数据插值

本篇基于文章的相关内容和文章公开的奇异谱分析(SSA)插值算法程序包,对grace Mascon数据种缺失的月份进行 插值 ,总结了使用程序包的相关过程,可以将该程序应用到其他数据处理插值计算中。

weixin_43339605的博客 1842

开启您的即时通讯未来:深入了解OpenIM

开启您的即时通讯未来:深入了解OpenIM open-im-serverIM Chat 项目地址:https://gitcode.com/gh_mirrors/op/open-im-server 在数字交流的时代背景下,即时消息服务成为连接全球社区的桥梁。而在这片广袤的技术蓝海中,OpenIM作为一款专为开发者打造的即时通讯解决方案,正以它卓越的功能和开放的态度,引领着新一代应用开发的趋势。 项...

gitblog_00787的博客 1478

【LLM数据篇】预训练数据集+指令生成sft数据集

在《Aligning Large Language Models with Human: A Survey》综述中对LLM数据分类为典型的人工标注数据、self-instruct数据集等 优秀的开源sft数据集:alpaca_data、belle、千言数据集、firefly、moss-003-sft-data多轮对话数据集等 文章目录 note 构造指令实例的3种方式 sft:Aligning Large Language Models with Human: A Survey Alpaca 1. self

发现问题,并解决问题,批判性思维 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

收藏-即时通讯(IM)开源项目OpenIM-功能手册

收藏-即时通讯(IM)开源项目OpenIM-功能手册

OpenIM的博客 7472

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

# 靠谱:开源IM项目OpenIM压测程序介绍-自己动手压测性能和稳定性

# 靠谱:开源IM项目OpenIM压测程序介绍-自己动手压测性能和稳定性

OpenIM的博客 2466

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

稳扎稳打 部署丝滑 开源即时通讯(IM)项目OpenIM源码部署流程(linux windows mac)

背景OpenIM包含多个关键组件,每个都是系统功能必不可少的一部分。具体来说,MongoDB 用于持久化存储;Redis 用作缓存;Kafka 用于消息队列;Zookeeper 用于服务发现;Minio 用于对象存储。这些组件的众多可能会增加部署的复杂性。此外,系统包含多个微服务模块,这要求有效管理进程的启动、停止和监控。为了简化这一过程,我们放弃了传统脚本,转而采用了 mage 这一跨平台方案,兼容所有主流平台和 CPU 架构。本文将详细介绍整个源码部署过程。OpenIM整体架构。

OpenIM的博客 3555

轻量级开源即时通讯项目:Open Im Server

轻松搭建,随心沟通,让距离更近一步!

2401_83063795的博客 2585

OpenIM:开源即时通讯整体解决方案深度解析

OpenIM 是一个由前微信技术专家团队研发的全栈开源即时通讯(IM)项目,包含高性能的服务端组件和丰富的客户端 SDK 支持,旨在帮助开发者构建具备实时通信能力的应用程序。 ### 核心特点 - **可扩展性架构**:采用微服务架构设计,易于集成且具备良好的横向扩展能力 - **高并发性能**:轻量级设计配合多协议支持,能够在资源消耗较小的情况下处理大量消息传输 - **完全免费与安全**:

gitblog_00556的博客 1198

IM开源项目OpenIM部署文档-从准备工作到nginx配置

openim

OpenIM的博客 7735
上一篇: 开源IM项目OpenIM 客户端SDK架构剖析-确保消息的有序性,以及消息百分百可达
下一篇: # github突破7k star 即时通讯(IM)开源项目OpenIM每周迭代版本发布
OpenIM
博客等级 码龄5年 295粉丝 68原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值