通知

更新时间: 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 信令事件相关信息
此文档是否对你有帮助?
有帮助
去反馈
  • 信令通知概述
  • 在线通知
  • 离线通知
  • 多端同步通知
  • 其他同步通知
  • 注册信令服务相关监听
  • 通知事件相关 API