如果想做大房间的话,是不论房间内有多少人都始终能收到onUserJoined的回调吗?

业务上想做多人语聊房,想用agora提供的用户进出做用户控制,所以想了解下是不是不论房间内有多少人都始终能收到onUserJoined的回调?

理论上来说是这样的,没有人数限制

我看到FAQ里建议用RTM来监听主播上下麦/进退房,然后我看到RTM的onMemberJoined里写的限制是512,不知道RTC这边是否有这个限制

rtm那个是你在服务端管理频道的方法,而刚才说的回调是客户端收到的,不太一样。如果你要是用rtm在服务端监听,是有人数限制的。只有rtc不能做到这种监听,要不使用restful api监听,要不集成rtc监听。

不是很理解监听和普通回调的区别,SDK客户端回调的用户进出消息就是让业务层感知用户进出的,所以我原本的理解是以为多人场景需要再去集成RTMSDK,然后将RTM的channel和RTC的channel进行绑定,通过RTM的onMemberJoined来替代RTC的onUserJoined;现在看来不是这样?
我看的是这一篇:https://docs.agora.io/cn/Real-time-Messaging/faq/audience_event

感觉不是 ,这个也是一个客户端回调

能否帮忙解答下?

有人吗

你理解是基本没有错误的,使用rtm的方法,是你作为服务端也加入频道,才能收到回调,所以频道里要多加一个专门的用户端,如过你想获取频道内信息和管理频道,建议你使用消息通知服务或者restful api,使用rtm的一个来说不不好实现,如果你想管理频道,也比较麻烦。

ok,那我理解是这样,房间内最多只能设置17个人为主播,其他都是观众,观众是不会有userjoin的回调的,所以这部分客户依赖服务端消息通知对吧

差不多,补充一下,在其他用户加入频道的时候,频道内的主播信息会作为会调显示给他,如果有新的主播加入,也会重新回调一次,这样的话,在频道内的所有人包括观众就都知道频道内所有的主播是谁了,但是观众不需要知道其他观众的信息,只知道主播信息就够了,你看其他直播平台,作为观众进去的话也是看不到其他观众信息的,毕竟人家只要知道主播是谁就行了,其他观众是谁也没人想知道的。而消息通知主要是给服务端管理端的,就是直播app的开发公司作为服务管理者,要知道平台内的观众有谁,踢人,封禁等等,所以消息通知主要是给他们看的。

好的 理解了 谢谢,另外想请教下,如果主播人数超过17人,比如目前我们计划做20人主播互动,会有问题吗?

会有,其他人将只能接收前十七个人的发流

我这边测了一下 好像超过18个的时候,后进来的人会被设为观众?

如果同时发流人数超过 Agora 的建议值,用户只能随机听到或看到频道内某些发流用户。例如,在视频直播中,频道内有 18 位主播同时发流,每位用户都会随机听不见或看不见某一路音频或视频流。