云服务与私有化两种形态:整套能力可部署到你自己的服务器,账号、消息与录制文件都留在内网 整套能力可部署到你的服务器,数据留在内网 了解私有化交付

IM 即时通讯

长连接网关 + Open API + 回调投递,覆盖单聊、群聊、聊天室、超级群与系统通知;弱网下消息不丢不重,运营侧可管可审。

飞雁云 IM 多端聊天界面

四块能力拼起来,就是一套 IM 系统

消息通道、会话能力、关系与群组、多端 SDK 各司其职,组合起来就是一个可直接交付的 IM 系统。

消息通道

长连接网关、Open API、管理 API 与回调投递四条通路打通,消息上下行不依赖轮询。

  • 私有协议长连接,断线自动重连
  • Open API 覆盖全部消息类型
  • 回调投递同步消息状态与业务事件

会话能力

单聊、群聊、聊天室、超级群、系统通知五类会话形态,消息类型覆盖文本到自定义。

  • 文本、图片、文件、语音、位置与自定义消息
  • 已读回执、消息撤回、@提及、引用回复
  • 草稿、置顶、历史消息漫游与消息搜索

关系与群组

好友关系链与群组管理接口齐备,业务侧不必自建一套关系与群权限模型。

  • 好友关系、好友申请、黑名单、在线状态
  • 改名、管理员、禁言、移除、转让、群公告

多端 SDK 与 IMKit

Web / Android / iOS / macOS / Flutter / RN / 小程序全覆盖,配套 IMKit UI 组件直接复用。

  • 一套账号体系,多端同时在线
  • IMKit 提供会话、消息、通讯录 UI
  • 控制台与运营后台可管可审

消息要可靠,治理也要跟得上

不只是能发消息,而是把消息可靠性、会话体验与内容治理一起做好。

飞雁云 IM 桌面端聊天界面

弱网来回切换,消息不丢也不重

长连接网关负责上下行,消息落库三副本后返回确认;客户端按会话序号去重与补拉,弱网重连恢复后消息不丢、不重复。

  • 断线自动重连,离线期间消息入库待补发
  • 消息存储三副本,写多读少场景下仍保持一致
  • 离线推送通道兜底,App 未运行也能触达
  • 回调投递把消息状态同步到你的业务系统
飞雁云 IM 移动端会话界面

日常聊天用得上的细节都有

从已读回执到引用回复,日常聊天里真正会被用到的能力都已内置,接入即可交付完整会话体验。

  • 群聊已读回执按 n/m 汇总,并可下钻已读明细
  • 消息撤回、@提及、引用回复、草稿与置顶
  • 历史消息漫游与全量消息搜索
  • 聊天室支持高并发进出与消息频控
飞雁云 IM 群组管理与群公告

好友与群,后台看得见也管得住

好友申请、黑名单、群成员治理与敏感词审核放在一套接口里,运营后台可视化管理。

  • 好友申请审批流、黑名单与在线状态同步
  • 群主可改群名、设管理员、禁言、移除与转让
  • 群公告触达全员,系统通知强提醒
  • 敏感词审核与内容风控,命中可拦截或替换

技术架构

终端只连一条长连接,服务端按职责分层,存储与推送分离,扩容时各自独立。

接入层 终端 SDK 与 UI 组件
WebAndroidiOSmacOSFlutterReact Native小程序IMKit 组件
服务层 消息与关系链
长连接网关消息服务关系链群组服务内容审核Open API管理 API回调投递
存储与推送 持久化与触达
消息存储(3 副本)历史消息漫游离线推送通道敏感词库

长连接网关与消息服务均可水平扩展;私有化部署时三层可整套落在你的机房内网。

先接通一条消息,再逐步加能力

控制台创建应用拿到 AppID,引入 SDK 建立长连接,即可收发第一条消息。

  • 控制台创建应用,获取 AppID 与密钥,配置回调地址
  • 按端引入 SDK 或 IMKit UI 组件,替换会话界面
  • 服务端调用 Open API 发送系统通知、管理群组与关系链

完整接入指南见 文档中心,各端 SDK 见 SDK 下载。

im-quick-start.ts TypeScript
import FeiyanIM from '@feiyan/im-sdk';

// 1. 初始化:AppID 在控制台应用详情中获取
const im = FeiyanIM.init({ appId: 'YOUR_APP_ID' });

// 2. 建立长连接(断线自动重连,离线消息自动补发)
await im.connect({ userId: 'user_1001', token });

// 3. 发送消息:单聊、群聊、聊天室同一套接口
await im.sendMessage({
  target: 'group_2001',
  type: 'text',
  content: '你好,飞雁云',
});

// 4. 监听消息与已读回执
im.on('message', (msg) => console.log(msg));
im.on('readReceipt', (r) => {
  console.log(`${r.readCount}/${r.totalCount}`, r.readUserIds);
});

接入前的常见问题

更多技术细节请查阅文档中心,或提交工单获取支持。

消息如何保证不丢、不重复?
消息经长连接网关写入消息服务后,以三副本方式落库成功才返回发送确认;客户端为每个会话维护递增序号,重连后按序号补拉缺失消息并去重,因此弱网切换、进程被杀等情况下不会出现丢消息或重复展示。
支持哪些消息类型?能不能自定义?
内置文本、图片、文件、语音、位置与系统通知等常用类型,同时提供自定义消息类型:业务可自定义消息体与渲染方式,服务端只做透传与存储,适合订单卡片、富文本卡片等场景。
群聊已读回执是怎么统计的?
群聊回执以 n/m 形式展示已读人数与群成员总数,并可通过接口拉取已读成员明细;单聊回执直接标记对方已读时间。回执状态会通过回调投递同步到业务后台。
历史消息漫游可以保留多久?
公有云的漫游时长按所选套餐在控制台调整,可通过 Open API 分页拉取;私有化部署时消息存储与漫游策略由你自己的数据库承载,保留周期可自定义。
多端登录时消息如何同步?
同一账号可在 Web、移动端与桌面端同时在线,任一端发送或已读后,其他端通过在线通道收到同步事件,离线端在下次连接时按序号补拉,保证多端会话状态一致。
IM 可以单独使用,还是必须搭配 RTC?
IM 与实时音视频是两套独立产品,可单独接入;如果需要在会话里发起音视频通话,可以组合使用 RTC 的通话能力,共用同一套账号与鉴权体系。

产品实拍

界面与后台,都是同一套产品

群聊:@提及、群公告与已读计数 群已读 2/7、成员 8 人、消息撤回占位都在真实会话里跑出来
手机端会话列表 未读角标、置顶、草稿与系统通知
手机端开会 双人通话:远端大画面 + 本地小窗
屏幕共享 共享控制台数据看板,右侧保留参会人画面

现在开始,30 分钟跑通第一条消息

免费版即可完成开发与联调,正式上线再按用量升级。

留下联系方式,获取方案与报价

售前顾问会与你确认业务场景、并发规模与部署环境,通常在一个工作日内回复。

带 * 为必填;我们仅将信息用于本次售前沟通。