在线咨询
专属客服在线解答,提供专业解决方案
声网 AI助手
您的专属 AI 伙伴,开启全新搜索体验

构建 千万用户 规模的实时互动应用 RTM仅需 30分钟

低延时,高并发,高可靠的全球信令与消息云服务

100ms

全球端到端延时

200+

节点覆盖国家和地区

3000+

全球客户的使用

1700万

每月使用的终端用户数

7000亿

每月消息发送条数

适配丰富的场景功能

实时数据更新

支持实时数据更新,例如体育比分、旅行信息、股票、货币或拍卖价格。

实时动态仪表板
在仪表板、图表、排行榜或调查结果中显示聚合的实时数值数据。
视频直播聊天
视频直播场景下实时发送弹幕、礼物、出价等消息和指令,构建实时互动新体验。
游戏直播聊天
游戏直播场景下发消息、弹幕、礼物等,增强游戏互动体验。
团队消息传递
实时团队消息传递,支持 1V1、群聊、聊天室等多种方式。
客服聊天
客服聊天,1V1 新体验,端到端加密保证数据安全。
游戏进程状态同步
互动游戏中实时同步当前游戏进程,增强游戏互动体验。
协作流程状态同步
在你的应用中自定义协作流程状态,透明团队协作进程,增强用户体验。
任务流程状态同步
构建任务流程的实时同步,时刻跟踪流程变化。
电商拍卖流程同步
电商拍卖流程同步
创建虚拟互动空间
为线上课堂或者工作小组创建在线互动白板、表格、文档等虚拟互动空间。
同步编辑修改到后端
将多人协作编辑的文档、表格、画板等内容实时保存到后端服务器。
实时音视频会话
与RTC 结合,实时建立音视频通话,或者录制影像以便于以后查看。
广播编辑修改到其他用户端
实时更新用户的修改编辑到其他用户端,同步更新文件变化。
用户在线状态实时更新
实时更新用户在线状态、成员位置、动态光标、组件锁定等信息。
设备状态实时监控
收集并显示从传感器设备上报的实时数据及健康状态。
设备实时控制管理
远程向智能设备发出实时指令,执行某个动作,或者升级系统。
实时音视频会话
与RTC 结合,实时建立音视频通话,或者录制回放。
构建物联网数据生态
集成其他数据源以提高 IoT 性能、实现自动化并扩展功能。
实时位置跟踪
实时了解航班、车辆、船舶或快递员的状态和位置,并在地图或仪表盘中显示它们。
基于位置社区
无论是家人、朋友还是周边陌生人,或者宠物、心爱的物品,都可以把他们聚集在一起,基于位置构建社区。
聊天与通知
将聊天和信息通知集成到你的APP,增强用户体验。
音视频会话
随时呼叫预约者、司机或快递员了解他们的状态,或者呼叫你的设备找到他们。
三方数据源集成
集成新闻、天气、股票等三方数据源,增强您的额应用体验。

20+ 行业,4000+ App 选择声网 RTM

元宇宙

虚拟人的位置实时更新、动作捕捉数据同步、面部表情数据同步、场景切换甚至区块链和WEB3.0,RTM 都可以提供安全、有效、规模可扩展的实时传输方案

互动游戏

不要让你的游戏客户流失到第三社交应用中,使用 我们的API和 SDK构建自己的社交应用,让玩家可以时刻保持互动。

在线教育

使用 RTM 构建在线互动课堂,连接教师、学生和家长,为他们提供一整套安全、可靠、实时互动的在线学习方案。

在线电商

无论是直播带货还是在线拍卖,RTM都能提供安全、稳定、可靠的实时互动机制,有效提升用户购物体验。

互动直播

向世界各地的用户提供互动直播媒体内容,让你的观众实时参与你的活动并收集他们反馈的数据,无论用户规模多大,都能获得一致体验。

协同办公

我们功能齐全的 SDK 让您只需几行代码即可轻松构建虚拟白板、文档协作等应用。无需从头开始重新架构。无需建设基础设施。

iot/智能设备

依赖RTM服务的高可靠和高可用性,构建可实时监控的全球物联网系统,提升物联网应用的新体验。

远程医疗

从远程问诊到 EHR 解决方案,甚至互联网健身应用,RTM 都将有效提升健康咨询、医患沟通、协作与激励的实时互动体验。

智慧交通

使用RTM 可以轻松构建基于实时临近匹配、位置跟踪、聊天互动、实时通知的位置应用APP,优化调度和交付。

金融科技

RTM 将帮助你构建具备实时性的互联网金融应用程序,为用户提供更好、更快、更安全的实时体验。

平行操控

从无人采矿车、平行清扫车到平行飞行器,甚至遥控玩具,RTM 都能提供极致实时数据流传输方案,最低20毫秒的传输延迟和高可靠性让平操控如真人操控一般丝滑。

智慧城市

使用RTM机制可靠的实时服务,你将可以轻松构建实时公共服务APP,例如水、电、煤气等用量查询,实时公交、航班信息发布等等。

为什么选择声网RTM?

全球节点覆盖

全球节点部署,提供覆盖超过全球200多个国家和地区的高质量实时云信令服务。

高可靠设计,无惧弱网

高可靠设计,多机房多路保活机制,在70%丢包的弱网环境下,也能保证消息达到率。

微延迟,极速传输

全球海量数据分发与状态同步延迟< 100ms(99分位值),同区域往返延迟 < 50ms

千亿级超高并发

并发人数无上限,支持超过1000亿级消息并发能力,单频道支持100万并发。

高可用,SLA保证

提供超过99.99%正常运行时间 SLA 保证,非常可靠且可用。     

灵活可扩展

提供内容审核、实时翻译、云存储、消息推送、Chatbot 等丰富的三方插件

实时数据监控

通过声网水晶球,可提供实时数据监控、告警、分析与洞察功能。

安全加密-全球畅行无忧

多种安全加密手段,符合GDPR、CCPA、COPPA等全球性隐私安全法规要求。

精心设计的API带来极致的集成体验

我们重视API的易用性,并为各种场景应用提供广泛的教程。这就是我们的客户通常在几天内完成集成上线,而选择其他产品方案往往需要数月。

const { RTM } = AgoraRTM

const appId = “your_appId”

const userId = “your_userId”

const setupRTM = async () => {

try {

            const rtm = new RTM(appId, userId)

            rtm.addEventListener(“message”, event => {

                console..log(event.publisher,event.message)

          })

const result1 = awaitrtm.login()

const result2 = await rtm.subscribe(“Room1” )

await publishMessage(“Hello,World” )

} catch (status){}

const publishMessage = async (message) => {

try {

const result = await rtm.publish(“Room1”, message)

          console..log(result)

await publishMessage(“Hello,World” )

} catch (status){

console..log(status)

    }

window.onload = setupRTM

public class EventHandler implements RtmEventListener {

    @Override

    public void onMessageEvent ( MessageEvent event ) {}

}

String appId = “your_appId”

String userId = “your_userId”

RtmConfig rtmConfig = new RtmConfig.Builder( appId, userIdeventListener(new EventHandler() ).build()

rtmClient = RtmClient.create( rtmConfig )

String token = “your_token”

rtmClient. login ( token, new ResultCallback < Void> () {

    @Override

    public void onSuccess ( Void responseInfo ) {}

    @Override

    public void onFailure ( ErrorInfo errorInfo ) {}

})

String channelName = “Room1”

String message = “Hello World”

PublishOptions options = new PublishOptions()

rtmClient. publish ( channelName, message, options, new ResultCallback < Void> () {

    @Override

    public void onSuccess ( Void responseInfo ) {}

    @Override

    public void onFailure ( ErrorInfo errorInfo ) {}

})

@interface EvnetHandler : NSObject <AgoraRtmClientDelegate>

@end

@implementation EvnetHandler

– (void)rtmKit🙁AgoraRtmClientKit *)rtmKit didReceiveMessageEvent🙁AgoraRtmMessageEvent *)event {}

@end

NSString* appId = @“your_appId”

NSString* userId = @“your_userId”

AgoraRtmClientConfig* cfg = [[AgoraRtmClientConfig alloc] initWithAppId : appId userId : userId]

NSError* initError = nil

AgoraRtmClientKit* client = [[AgoraRtmClientKit alloc] initWithConfig : cfg delegate : &initError]

NSString* token = @“your_token”

[ client loginByToken :token completion :^( AgoraRtmCommonResponse * _Nullable response , AgoraRtmErrorInfo * _Nullable errorInfo ) {

     if ( errorInfo == nil ) {

     } else {

     }

}]

publish message

NSString* channelName = @“Room1”

NSString* message = @“Hello World”

[ client publish :message option :nil completion :^( AgoraRtmCommonResponse * response , AgoraRtmErrorInfo* _Nullable errorInfo ) {

     if ( errorInfo == nil ) {

     } else {

     }

}]

#include <mutex>

#include <condition_variable>

#include “IAgoraRtmClient.h”

using namespace std;

using namespace agora::rtm;

static const char* kAppName = “[rtm-demo]”;

mutex mtx;

condition_variable cv;

bool ready = false;

class RtmEventHandler : public IRtmEventHandler {

    public:

     void onMessageEvent(const IRtmEventHandler::MessageEvent &event) override {

         printf(“%s: message event: %s \r\n”, kAppName, event.message);

    }

     void onLoginResult(RTM_ERROR_CODEerrorCode) override {

         printf(“%s: login with error code: %d \r\n”, kAppName, errorCode);

        if (errorCode == RTM_ERROR_OK) {

            std ::unique_lock<std::mutex> lck(mtx);

             ready = true;

             cv.notify_all();

        }

    }

};

private string appId = “your_appId”

private string userId = “your_userId”

private string channelName = “ROOM1”

private IRtmClient rtmClient

public void Awake()

{

     Initialize()

}

public async void Initialize()

{

     RtmConfig config = new RtmConfig()

     config.appId = appId

     config.userId = userId

     try {

         rtmClient = RtmClient. CreateAgoraRtmClient . (config)

     } catch (RTMException e) {

     }

     rtmClient. OnMessageEvent += OnMessageEvent

     SubscribeOptions subscribeOptions = new SubscribeOptions ()

     var result1 = await rtmClient. SubscribeAsync( channelName, subscribeOptions)

     PublishOptions publishOptions = new PublishOptions ()

     var result2 = await rtmClient. PublishAsync( channelName, “Hello,World” , subscribeOptions)

}

private void OnMessageEvent( MessageEvent eve)

{

     Debug. Log( string. Format ( “Received message:{0} from :{1} “, eve. publisher, eve. message ))

}

RTM 开发者资源

新手指引

arrow-4311110000025123

API文档

arrow-4311110000025123

SDK下载

arrow-4311110000025123

示例代码

arrow-4311110000025123

即将上线

现在就接入RTM,开启实时互动新体验

功能丰富易用
客户风险分摊

性能稳定可靠
24小时技术保障
全球网络覆盖
优化成本投入
我们为开发者提供了丰富的开发资源,以便于你能快速接入应用,提升业务效率。