EventType 枚举(Flutter IMLib)
事件类型枚举:共 16 个取值,定义来自 sdk-imlib.json → capabilityModel.events(全部事件)。
基本信息
| 项 | 值 |
|---|---|
| 枚举 | EventType |
| 取值数 | 16 |
| 本平台常量名 | — |
| IDL 来源 | sdk-imlib.json → capabilityModel.events(全部事件) |
| 跨端一致性 | 取值跨端一致;常量名与成员名按平台绑定 |
| 平台状态 | 已交付 |
本平台常量名
本平台绑定未单独导出 EventType 的命名常量,接口中按 IDL 取值(数值或字符串)传递;如需可读性,建议在业务侧定义同名常量。
枚举常量摘要
| 事件 | 本平台常量 | 载荷 | 说明 |
|---|---|---|---|
CONNECTING | CONNECTING | {attempt:int} | 连接建立中:每次建连/重连尝试时触发,载荷含重试次数 attempt。 |
CONNECTED | CONNECTED | {userId:string, sessionId?:string} | 连接建立成功:收到服务端 hello 之后触发,可开始发送请求。 |
DISCONNECT | DISCONNECT | {code:int, reason:string} | 连接断开:主动断开、鉴权失败或放弃重连时触发。 |
SUSPEND | SUSPEND | {code:int, reason:string} | 连接挂起:异常断开后 SDK 进入指数退避重连,期间业务请求会失败。 |
MESSAGES | MESSAGES | {messages:Message[]} | 收到消息:在线消息与离线补发消息都通过该事件下发,载荷为 Message 列表。 |
CONVERSATION | CONVERSATION | {conversation:Conversation} | 会话变更:未读数、置顶、提醒级别、草稿或最后一条消息变化时触发。 |
MESSAGE_RECALLED | MESSAGE_RECALLED | {message:Message} | 消息被撤回:收到服务端撤回帧,载荷为被撤回的 Message。 |
READ_RECEIPT | READ_RECEIPT | ReadReceipt | 已读回执:收到对方已读上报,载荷为 ReadReceipt。 |
TYPING | TYPING | {conversationType:ConversationType,targetId:string,userId:string,typing:bool,timestamp:int64} | 输入状态:收到“正在输入”状态帧。 |
FRIEND_EVENT | FRIEND_EVENT | {kind:FriendEventKind,request?:FriendRequest,fromUserId?:string,toUserId?:string,timestamp:int64} | 好友事件:好友请求、接受、拒绝等事件,载荷含 FriendRequest。 |
CHATROOM_EVENT | CHATROOM_EVENT | {chatroomId:string,kind:ChatroomEventKind,userId?:string,onlineCount?:uint32,chatroom?:Chatroom,timestamp:int64} | 聊天室事件:成员加入/退出/被移出、成员变更、聊天室销毁。 |
KICKED | KICKED | {code:int,reason:string} | 被踢下线:多端互踢或账号封禁,SDK 不再自动重连。 |
MESSAGE_REACTION_CHANGED | MESSAGE_REACTION_CHANGED | {messageId:string,conversationType:ConversationType,targetId:string,reactionId:string,operation:added|removed|cleared,userId:string,reactionTime:int64,totalCount:uint32,users:string[]?} | — |
MESSAGE_EXPANSION_CHANGED | MESSAGE_EXPANSION_CHANGED | {messageId:string,conversationType:ConversationType,targetId:string,updated:Record<string,string>?,removed:string[]?,timestamp:int64} | — |
STREAM_MESSAGE_CHANGED | STREAM_MESSAGE_CHANGED | {streamId:string,messageId:string,conversationType:ConversationType,targetId:string,senderId:string,delta:string,seq:uint32,text:string,status:streaming|ended,complete:bool,timestamp:int64} | — |
PRESENCE_CHANGED | PRESENCE_CHANGED | {userId:string,online:bool,lastSeenAt:int64,timestamp:int64,reason:connect|disconnect|kick|deactivate} | — |
使用说明
addEventListener / removeEventListener 的事件名取值;事件载荷与触发时机见监听器类页面。
事件通过 engine.events.listen((event) => ...) / engine.addEventListener(name, handler) 注册;事件载荷与触发时机见 RongIMEvents。
示例
Dart
void onMessage(dynamic payload) => print(payload);
engine.addEventListener(RongIMEvents.MESSAGES, onMessage);相关链接
- 使用该枚举的类:RongIMEvents、RCIMIWEngine
- 枚举索引:枚举;错误码:ErrorCode;事件:EventType
- 类列表:类;索引:索引