Event Callback

Callback List

  • Core::HMRStateListener

Public Callback FunctionFunction Name
voidonStateCallback(void *context, bool isInitial, HMRState oldState, HMRState newState)
voidonTokenInvalidCallback(void *context, HMRTokenInvalidCode code, const char *desc, int descsize)
  • ChatRoomService::HMRChatRoomListener

Public Callback FunctionFunction Name
voidonBasicInfoChanged(void *context, uint32_t chatroom, uint64_t operatorUser, const HMRKvArray *info)
  • ChatRoomService::HMRChatRoomMemberListener

Public Callback FunctionFunction Name
voidonMemberJoined(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize)
voidonMemberLeaved(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize)
voidonMemberCountChanged(void *context, uint32_t chatroom, uint32_t count)
voidonMemberKicked(void *context, uint32_t chatroom, uint64_t admin, const uint64_t *member, uint16_t membersize, const char *reason)
voidonUserInfoSet(void *context, uint32_t chatroom, uint64_t user, const HMRKvArray *infos)
  • MessageService::HMRMessageListener

Public Callback FunctionFunction Name
voidbeforeSending(void *context, HMRMessage *message)
voidafterSending(void *context, HMRMessage *message)
voidonReceive(void *context, HMRMessage *message)

Callback Details

Core

HMRStateListener::onStateCallback

typedef void(*HMRStateCallback)(void *context, bool isInitial, HMRState oldState, HMRState newState);

Callback of Hummer SDK status changes

Parameter
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
isInitialCallback is immediately triggered upon requesting HMRAddStateListener. This callback’s isInitial value is true; the value is false for subsequently received actual changes.
oldStatePre-change status. See details in HMRState.
newStateCurrent status

HMRStateListener::onTokenInvalidCallback

typedef void(*HMRTokenInvalidCallback)(void *context, HMRTokenInvalidCode code, const char *desc, int descsize);

Notification of invalid authentication token

Parameter
ParameterDescription
contextRA request context object, callback pass-through to extract context from listener
codeAn invalid type. See details in HMRTokenInvalidCode.
descInvalidation reason
descsizeString length for invalidation reason

ChatRoomService

HMRChatRoomListener::onBasicInfoChanged

void(*onBasicInfoChanged)(void *context, uint32_t chatroom, uint64_t operatorUser, const HMRKvArray *info);

Callback of changes to basic chatroom information

Note:

Parameters
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
chatroomChatroom ID
operatorUserAn administrator changing chatroom information
infoA changed key-value pair. See HMRChatRoomBasicInfoType for reference enumeration of key values.

HMRChatRoomMemberListener

HMRChatRoomMemberListener::onMemberJoined

void(*onMemberJoined)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);

Callback of members joining the chatroom

Note:

Parameters
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
chatroomChatroom ID
usersMembers joining the chatroom
usersizeNumber of members

HMRChatRoomMemberListener::onMemberLeaved

void(*onMemberLeaved)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);

Callback of members exiting the chatroom

Note:

  • Call HMRLeaveChatRoom to perform callback.
  • Causes a user experiencing disconnection timeout to exit the chatroom and receives callback for that user exiting.
Parameters
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
chatroomChatroom ID
usersMembers exiting the chatroom
usersizeNumber of members

HMRChatRoomMemberListener::onMemberCountChanged

void(*onMemberCountChanged)(void *context, uint32_t chatroom, uint32_t count);

Callback of changes to chatroom member count

Note:

Parameters
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
chatroomChatroom ID
countA changed count

HMRChatRoomMemberListener::onMemberKicked

void(*onMemberKicked)(void *context, uint32_t chatroom, uint64_t admin, const uint64_t *member, uint16_t membersize, const char *reason);

Callback of chatroom members removal

Parameters
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
chatroomChatroom ID
adminAn administrator executing member removal
memberMembers removed from channel
membersizeNumber of members
reasonReasons for member removal

HMRChatRoomMemberListener::onUserInfoSet

void(*onUserInfoSet)(void *context, uint32_t chatroom, uint64_t user, const HMRKvArray *infos);

Callback of setting information of a chatroom member

Note:

Parameters
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
chatroomChatroom ID
userThe user whose information changed
infosSet user information

MessageService

HMRMessageListener::beforeSending

typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);

Callback before message sending

Parameters
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
messageMessage to be sent. See details in HMRMessage.

HMRMessageListener::afterSending

typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);

Callback after message sending

  • This callback occurs after you call HMRSendMessasge to send a message (regardless of message sending success or failure).
Parameter
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
messageMessage sent. See details in HMRMessage.

HMRMessageListener::onReceive

typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);

Callback of message receiving

Parameters
ParameterDescription
contextA request context object, callback pass-through to extract context from listener
messageMessage received. See detail in HMRMessage.

Enumeration Value & Structure Definition

HMRStateListener

struct HMRStateListener {
	// Context object pointer for asynchronous request, which is generally the object pointer that initiates an asynchronous operation
	void *context;

	// Function pointer for status change callback; when Hummer internal working state changes, this method will be used for callback
	// If listener is added to the main thread, the callback will also be scheduled to the main thread, otherwise, it will be scheduled for execution in the Hummer worker thread
	HMRStateCallback onStateCallback;

	// Function pointer for token invalidation callback
	// If listener is added to the main thread, the callback will also be scheduled to the main thread, otherwise, it will be scheduled for execution in the Hummer worker thread
	HMRTokenInvalidCallback onTokenInvalidCallback;

	// Hummer  Internal auxiliary data, not to be modified or used by service
	void *preserved;
};

Information about SDK state listener

Parameters
ParameterDescription
contextContext object pointer for asynchronous request
onStateCallbackStatus change callback function pointer. See details in onStateCallback.
onTokenInvalidCallbackToken invalidation callback function pointer. See details in onTokenInvalidCallback.
preservedReserved field

HMRTokenInvalidCode

enum HMRTokenInvalidCode

Token invalid type

Enumeration ValueDescription
HMRTokenInvalidCode_Expired(1)Expired

HMRChatRoomListener

struct HMRChatRoomListener {
	// Context object pointer for asynchronous request, which is generally the object pointer that initiates an asynchronous operation
	void *context;

	/**
	* Callback notification for basic information change of the chatroom
	*
	* @param context		Context refers to passing through the context object carried in listener
	* @param chatRoom		Chatroom
	* @param operatorUser	Information modifier 
	* @param info			Key value of changed information
	*/
	void(*onBasicInfoChanged)(void *context, uint32_t chatroom, uint64_t operatorUser, const HMRKvArray *info);

	// Hummer  Field reserved for internal use, not to be accessed or modified by service
	void *reserved;
};

Chatroom event listener

Parameters
ParameterDescription
contextContext object pointer for asynchronous request
onBasicInfoChangedCallback notification for basic information change of the chatroom. See details in onBasicInfoChanged.
reservedReserved field

HMRChatRoomMemberListener

struct HMRChatRoomMemberListener {
	// Context object pointer for asynchronous request, which is generally the object pointer that initiates an asynchronous operation
	void *context;

	/**
	* Callback notification for member removal from a chatroom
	*
	* @param context Context refers to passing through the context object carried in listener
	* @param chatRoom Chatroom
	* @param admin    Administrator
	* @param member   User kicked out
	* @param membersize   Number of users removed
	* @param reason   Reason
	*/
	void(*onMemberKicked)(void *context, uint32_t chatroom, uint64_t admin, const uint64_t *member, uint16_t membersize, const char *reason);

	/**
	* Callback notification for members joining/exiting a chatroom
	*
	* @param context Context refers to passing through the context object carried in listener
	* @param chatRoom Chatroom
	* @param users    Join/exit user
	* @param usersize Number of users joining/exiting
	*/
	void(*onMemberJoined)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);
	void(*onMemberLeaved)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);

	/**
	* Callback notification for member information configuration
	*
	* @param context Context refers to passing through the context object carried in listener
	* @param chatRoom Chatroom
	* @param user Members with changed information
	* @param infos User information after setting
	*/
	void(*onUserInfoSet)(void *context, uint32_t chatroom, uint64_t user, const HMRKvArray *infos);

	/**
	* Callback notification for changes to member count
	*
	* @param context Context refers to passing through the context object carried in listener
	* @param chatRoom Chatroom
	* @param count    Number of users after change
	*/
	void(*onMemberCountChanged)(void *context, uint32_t chatroom, uint32_t count);

	// Hummer  Field reserved for internal use, not to be accessed or modified by service
	void *reserved;
};

Member event listener in the chatroom

Parameters
ParameterDescription
contextContext object pointer for asynchronous request
onMemberKickedCallback notification formember removal from a chatroom. See details in onMemberKicked.
onMemberJoinedCallback notification for members joining a chatroom. See details in onMemberJoined.
onMemberLeavedCallback notification for members exiting a chatroom. See details in onMemberLeaved.
onUserInfoSetCallback notification for member information configuration. See details in onUserInfoSet.
onMemberCountChangedCallback notification for changes to member count. See details in onMemberCountChanged.
reservedReserved field

HMRMessageListener

struct HMRMessageListener {
	// Pointer to a context object of an asynchronous request, which is generally the object pointer that initiates an asynchronous operation
	void *context;

	// target  Object used for message filtering. When calling EmptyIdentity, the listener will receive all messages. Otherwise it only
	// receives messages matching this target
	HMRIdentity target;

	// Callback before message sending. Receiving this callback means the message has been validated, and will be sent to receiver immediately
	HMRMessageCallback beforeSending;

	// Callback after message sending. Regardless of whether the message is sent successfully or not, receiving this callback means the message sending process is completed. Sending success or failure
	// may be judged according to the state field of the message object
	HMRMessageCallback afterSending;

	// Callback of message receiving. When a message belonging to the current user is received by Hummer, it will be processed through this callback
	HMRMessageCallback onReceive;

	// Hummer  Field reserved for internal use, not to be accessed or modified by service
	void *reserved;
};

Message status listener

Parameters
ParameterDescription
contextContext object pointer for asynchronous request
targetObject ID for message filtering
beforeSendingCallback before message sending. See details in beforeSending.
afterSendingCallback after message sending. See details in afterSending.
onReceiveCallback of message receiving. See details in onReceive.
reservedReserved field

Was this page helpful?

Helpful Not helpful
Submitted! Your feedback would help us improve the website.
Feedback
Top