EventType 枚举(Native (C ABI) IMLib)

事件类型枚举:共 16 个取值,定义来自 sdk-imlib.json → capabilityModel.events(全部事件)。

基本信息​

项值
枚举EventType
取值数16
本平台常量名int(数值常量)
IDL 来源sdk-imlib.json → capabilityModel.events(全部事件)
跨端一致性取值跨端一致;常量名与成员名按平台绑定
平台状态已交付
C ABI 取值

C ABI 以数值常量表达枚举;头文件 include/im_sdk.h 中提供对应宏定义。

枚举常量摘要​

事件本平台常量载荷说明
CONNECTINGCONNECTING{attempt:int}连接建立中:每次建连/重连尝试时触发,载荷含重试次数 attempt。
CONNECTEDCONNECTED{userId:string, sessionId?:string}连接建立成功:收到服务端 hello 之后触发,可开始发送请求。
DISCONNECTDISCONNECT{code:int, reason:string}连接断开:主动断开、鉴权失败或放弃重连时触发。
SUSPENDSUSPEND{code:int, reason:string}连接挂起:异常断开后 SDK 进入指数退避重连,期间业务请求会失败。
MESSAGESMESSAGES{messages:Message[]}收到消息:在线消息与离线补发消息都通过该事件下发,载荷为 Message 列表。
CONVERSATIONCONVERSATION{conversation:Conversation}会话变更:未读数、置顶、提醒级别、草稿或最后一条消息变化时触发。
MESSAGE_RECALLEDMESSAGE_RECALLED{message:Message}消息被撤回:收到服务端撤回帧,载荷为被撤回的 Message。
READ_RECEIPTREAD_RECEIPTReadReceipt已读回执:收到对方已读上报,载荷为 ReadReceipt。
TYPINGTYPING{conversationType:ConversationType,targetId:string,userId:string,typing:bool,timestamp:int64}输入状态:收到“正在输入”状态帧。
FRIEND_EVENTFRIEND_EVENT{kind:FriendEventKind,request?:FriendRequest,fromUserId?:string,toUserId?:string,timestamp:int64}好友事件:好友请求、接受、拒绝等事件,载荷含 FriendRequest。
CHATROOM_EVENTCHATROOM_EVENT{chatroomId:string,kind:ChatroomEventKind,userId?:string,onlineCount?:uint32,chatroom?:Chatroom,timestamp:int64}聊天室事件:成员加入/退出/被移出、成员变更、聊天室销毁。
KICKEDKICKED{code:int,reason:string}被踢下线:多端互踢或账号封禁,SDK 不再自动重连。
MESSAGE_REACTION_CHANGEDMESSAGE_REACTION_CHANGED{messageId:string,conversationType:ConversationType,targetId:string,reactionId:string,operation:added|removed|cleared,userId:string,reactionTime:int64,totalCount:uint32,users:string[]?}—
MESSAGE_EXPANSION_CHANGEDMESSAGE_EXPANSION_CHANGED{messageId:string,conversationType:ConversationType,targetId:string,updated:Record<string,string>?,removed:string[]?,timestamp:int64}—
STREAM_MESSAGE_CHANGEDSTREAM_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_CHANGEDPRESENCE_CHANGED{userId:string,online:bool,lastSeenAt:int64,timestamp:int64,reason:connect|disconnect|kick|deactivate}—

使用说明​

addEventListener / removeEventListener 的事件名取值;事件载荷与触发时机见监听器类页面。

事件通过 im_client_set_event_callback(im_client_t*, im_event_cb cb, void* user_data) 注册;事件载荷与触发时机见 im_event_cb。

示例​

C
/* 事件回调:见 im_client_set_event_callback */
im_client_set_event_callback(client, on_event, NULL);

相关链接​