通知
更新时间: 2025/01/22 16:00:06
云信信令的通知包括在线通知、离线通知以及同步通知,您可以通过注册信令服务的回调监听来获取相关通知。
信令通知概述
在线通知
在线通知是指,当用户在线时,发生以下事件,会收到相关通知消息。
- 关闭信令频道房间
- 用户加入信令频道房间
- 用户离开信令频道房间
- 邀请他人加入信令频道房间
- 取消邀请他人加入信令频道房间
- 拒绝加入信令频道房间的邀请
- 接受加入信令频道房间的邀请
- 自定义控制命令事件
离线通知
离线通知是指,当用户离线时,在离线期间发生以下事件,在用户上线时会收到离线期间发生的事件相关通知消息。
- 关闭信令频道房间
- 用户加入信令频道房间
- 用户离开信令频道房间
- 邀请他人加入信令频道房间
- 取消邀请他人加入信令频道房间
- 拒绝加入信令频道房间的邀请
- 接受加入信令频道房间的邀请
多端同步通知
同步通知是指,多端登录的用户,当某一端发生以下事件,其他端会同步收到相关事件的通知消息。
- 拒绝加入信令频道房间的邀请
- 接受加入信令频道房间的邀请
其他同步通知
其他同步通知主要指登录同步通知,是指用户登录后,会同步当前用户未退出的信令频道房间列表信息。
注册信令服务相关监听
在初始化后注册信令服务相关监听,注册成功后,当对应事件发生时,SDK 会触发相关回调通知。
全局只需注册一次。
示例代码如下:
Android
javaNIMClient.getService(V2NIMSignallingService.class).addSignallingListener(listener);
iOS
objective-c@interface Clazz:NSObject<V2NIMSignallingListener>
- (void)addSignallingListener;
- (void)removeSignallingListener;
@end
@implementation Clazz
- (void)addSignallingListener
{
[[NIMSDK sharedSDK].v2SignallingService addSignallingListener:self];
}
- (void)removeSignallingListener
{
[[NIMSDK sharedSDK].v2SignallingService removeSignallingListener:self];
}
- (void)onMultiClientEvent:(nonnull V2NIMSignallingEvent *)event {
// Your Code
}
- (void)onOfflineEvent:(nonnull NSArray<V2NIMSignallingEvent *> *)event {
// Your Code
}
- (void)onOnlineEvent:(nonnull V2NIMSignallingEvent *)event {
// Your Code
}
- (void)onSyncRoomInfoList:(nonnull NSArray<V2NIMSignallingRoomInfo *> *)channelRooms {
// Your Code
}
@end
Windows/macOS
cppsignallingService.addSignallingListener(listener);
Web/uni-app/小程序
typescriptnim.V2NIMSignallingService.on("onOnlineEvent", function (event: V2NIMSignallingEvent) {})
nim.V2NIMSignallingService.on("onOfflineEvent", function (event: V2NIMSignallingEvent[]]) {})
nim.V2NIMSignallingService.on("onMultiClientEvent", function (event: V2NIMSignallingEvent) {})
nim.V2NIMSignallingService.on("onSyncRoomInfoList", function (roomInfoList: V2NIMSignallingRoomInfo[]) {})
Node.js/Electron
typescriptv2.signallingService.on("onlineEvent", function (event: V2NIMSignallingEvent) {})
v2.signallingService.on("offlineEvent", function (event: V2NIMSignallingEvent[]]) {})
v2.signallingService.on("multiClientEvent", function (event: V2NIMSignallingEvent) {})
v2.signallingService.on("syncRoomInfoList", function (roomInfoList: V2NIMSignallingRoomInfo[]) {})
HarmonyOS
typescriptsignallingService.on("onOnlineEvent", function (event: V2NIMSignallingEvent) {})
signallingService.on("onOfflineEvent", function (event: V2NIMSignallingEvent[]]) {})
signallingService.on("onMultiClientEvent", function (event: V2NIMSignallingEvent) {})
signallingService.on("onSyncRoomInfoList", function (roomInfoList: V2NIMSignallingRoomInfo[]) {})
Flutter
DartList<StreamSubscription> listeners = [
NimCore.instance.signallingService.onOnlineEvent.listen((event) {
//todo something
}),
NimCore.instance.signallingService.onOfflineEvent.listen((event) {
//todo something
}),
NimCore.instance.signallingService.onMultiClientEvent.listen((event) {
//todo something
}),
NimCore.instance.signallingService.onMultiClientEvent.listen((event) {
//todo something
}),
];
如需要取消监听,请参考以下示例:
Android
javaNIMClient.getService(V2NIMSignallingService.class).removeSignallingListener(listener);
iOS
objective-c@interface Clazz:NSObject<V2NIMSignallingListener>
- (void)addSignallingListener;
- (void)removeSignallingListener;
@end
@implementation Clazz
- (void)addSignallingListener
{
[[NIMSDK sharedSDK].v2SignallingService addSignallingListener:self];
}
- (void)removeSignallingListener
{
[[NIMSDK sharedSDK].v2SignallingService removeSignallingListener:self];
}
- (void)onMultiClientEvent:(nonnull V2NIMSignallingEvent *)event {
// Your Code
}
- (void)onOfflineEvent:(nonnull NSArray<V2NIMSignallingEvent *> *)event {
// Your Code
}
- (void)onOnlineEvent:(nonnull V2NIMSignallingEvent *)event {
// Your Code
}
- (void)onSyncRoomInfoList:(nonnull NSArray<V2NIMSignallingRoomInfo *> *)channelRooms {
// Your Code
}
@end
Windows/macOS
cppsignallingService.removeSignallingListener(listener);
Web/uni-app/小程序
typescriptnim.V2NIMSignallingService.off("onOnlineEvent")
nim.V2NIMSignallingService.off("onOfflineEvent")
nim.V2NIMSignallingService.off("onMultiClientEvent")
nim.V2NIMSignallingService.off("onSyncRoomInfoList")
Node.js/Electron
typescriptv2.signallingService.off("onlineEvent", function (event: V2NIMSignallingEvent) {})
v2.signallingService.off("offlineEvent", function (event: V2NIMSignallingEvent[]]) {})
v2.signallingService.off("multiClientEvent", function (event: V2NIMSignallingEvent) {})
v2.signallingService.off("syncRoomInfoList", function (roomInfoList: V2NIMSignallingRoomInfo[]) {})
HarmonyOS
typescriptsignallingService.off("onOnlineEvent", function (event: V2NIMSignallingEvent) {})
signallingService.off("onOfflineEvent", function (event: V2NIMSignallingEvent[]]) {})
signallingService.off("onMultiClientEvent", function (event: V2NIMSignallingEvent) {})
signallingService.off("onSyncRoomInfoList", function (roomInfoList: V2NIMSignallingRoomInfo[]) {})
Flutter
Dartlisteners.forEach((listener){
listener.cancel();
});
通知事件相关 API
Android/iOS/macOS/Windows
API | 说明 |
---|---|
addSignallingListener |
注册信令服务相关监听 |
removeSignallingListener |
取消注册信令服务相关监听 |
V2NIMSignallingEventType |
信令频道事件类型 |
V2NIMSignallingEvent |
信令事件相关信息 |
Web/uni-app/小程序/Node.js/Electron/HarmonyOS
API | 说明 |
---|---|
on("EventName") |
注册信令服务相关监听 |
off("EventName") |
取消注册信令服务相关监听 |
V2NIMSignallingEventType |
信令频道事件类型 |
V2NIMSignallingEvent |
信令事件相关信息 |
Flutter
API | 说明 |
---|---|
listen |
注册信令服务相关监听 |
cancel |
取消注册信令服务相关监听 |
NIMSignallingEventType |
信令频道事件类型 |
NIMSignallingEvent |
信令事件相关信息 |
此文档是否对你有帮助?