# Channel Management
# Channel information query
If you need to query channel related information, such as channel name, existence, member name, and number of members, you can call the query interface for query:
/** * Query channel related information, such as existence, number of people, etc. * * @param channelId Channel ID * @return operationId, corresponding to the operationId in the onQuery callback */ public abstract int query(String channelId);
Copied!
Sample code:
mediaChannel.query("channelId");
Copied!
After the query operation is initiated, the front-end monitors the result of the callback query through the following method:
/** * The result callback triggers when query channel information * * @param operationId Returned by query interface * @param result Query result, true/false * @param reason The reason for the query failure; when the result is false, the value is valid * @param queryInfo Queried channel information */ public void onQuery(int operationId, boolean result, @JCMediaChannel.MediaChannelReason int reason, JCMediaChannelQueryInfo queryInfo);
Copied!
Sample code:
public void onQuery(int operationId, boolean result, @JCMediaChannel.MediaChannelReason int reason, JCMediaChannelQueryInfo queryInfo) { // Query successful if (result) { // Channel ID String channelId = queryInfo.getChannelId(); // Channel int number = queryInfo.getNumber(); // The number of channel members int clientCount = queryInfo.getClientCount(); // List of channel members List<String> members = queryInfo.getMembers(); } else { // Query failed } }
Copied!
# Channel member management
# Access member objects
Obtain the channel member objects by userId:
/** * @brief access channel members * @param userId unique user ID * @return member objects */ -(JCMediaChannelParticipant* __nullable)getParticipant:(NSString* __nonnull)userId;
Copied!
# Kick out members
Call the following method to kick a member out of the conference:
/** * @brief Kick a member out of the conference * * @param participant * @return true/false */ -(BOOL)kick:(JCMediaChannelParticipant * __nonnull)participant;
Copied!
Sample code:
JCMediaChannelParticipant* participant = [mediaChannel getParticipant:@"userId"]; if (participant != nil) { [mediaChannel kick:participant]; }
Copied!
# Send messages to other memebers
If you want to send messages to other members in the channel, you can call the following interface:
/** * @brief Send messages * * @param type message type * @param content message content; when toUserId is not null, content cannot be greater than 4k * @param toUserId receiver id; null is sent to all channel members * @return true/false */ -(bool)sendMessage:(NSString * __nonnull)type content:(NSString * __nonnull)content toUserId:(NSString * __nullable)toUserId;
Copied!
Among them, message type(type) is a custom type.
Sample code:
-(void)onJoin:(bool)result reason:(JCMediaChannelReason)reason channelId:(NSString*)channelId { // Send to all members [mediaChannel sendMessage:@"text" content:@"content" toUserId:nil]; // Send to a member [mediaChannel sendMessage:@"text" content:@"content" toUserId:@"UserId"]; }
Copied!
When other members in the channel receive a message, they will receive the onMessageReceive callback:
/** * This callback triggers when receive channel messages * * @param type message type * @param content message content * @param fromUserId the userId of the sender */ -(void)onMessageReceive:(NSString *)type content:(NSString *)content fromUserId:(NSString *)fromUserId;
Copied!