Signaling and modifying attributes
sendMessage
Send chat message
Callback for receiving a chat message:
-(void)roomManagerMessageReceived:(NSString )message fromID:(NSString )peerID extension:(NSDictionary *)extension.
| - (int)sendMessage:(NSObject *)message
toID:(NSString *)toID
extensionJson:(NSObject * _Nullable)extension;
|
Parameter Name |
Required |
Type |
Description |
message |
Yes |
NSObject |
The chat message body only supports NSString and NSDictionary |
toID |
Yes |
NSString |
Indicates the recipient of the message, of type NSString. For details, see the relevant definitions in TKRoomDefines.h. It can be a specific user ID, indicating that the message is sent only to that user |
extension |
No |
BOOL |
Message extension content, for example: message type type; supports NSString (JSON string) and NSDictionary |
| NSMutableDictionary * msgDic = [[NSMutableDictionary alloc] initWithCapacity:3];
[msgDic setObject:@"The first chat message" forKey:@"msg"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm"];
NSString *time = [dateFormatter stringFromDate:[NSDate date]];
NSDictionary *messageDic = @{@"type" : @0, @"time" : time};
|
Type |
Description |
int |
0: Indicates that the call was successful. Non-zero: Indicates that the call failed |
pubMsg
Publish custom signaling
After publishing custom signaling, the signaling callback is received:
-(void)roomManagerOnRemotePubMsgWithMsgID:(NSString )msgID msgName:(NSString )msgName data:(NSObject )data fromID:(NSString )fromID inList:(BOOL)inlist ts:(long)ts
For details on custom signaling, see: Getting Started - Custom Signaling
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | - (int)pubMsg:(NSString *)msgName
msgID:(NSString *)msgID
toID:(NSString *)toID
data:(NSObject * _Nullable)data
save:(BOOL)save
completion:(completion_block _Nullable)completion;
- (int)pubMsg:(NSString *)msgName
msgID:(NSString *)msgID
toID:(NSString *)toID
data:(NSObject * _Nullable)data
save:(BOOL)saveextensionData:(NSDictionary * _Nullable)extensionData
completion:(completion_block _Nullable)completion;
- (int)pubMsg:(NSString *)msgName
msgID:(NSString *)msgID
toID:(NSString *)toID
data:(NSObject * _Nullable)data
save:(BOOL)saveassociatedMsgID:(NSString * _Nullable)associatedMsgIDassociatedUserID:(NSString * _Nullable)associatedUserID
expires:(NSTimeInterval)expires
completion:(completion_block _Nullable)completion;
- (int)pubMsg:(NSString *)msgName
msgID:(NSString *)msgID
toID:(NSString *)toID
data:(NSObject *)data
save:(BOOL)saveassociatedMsgID:(NSString *)associatedMsgIDassociatedUserID:(NSString *)associatedUserID
expires:(NSTimeInterval)expiresextensionJson:(NSDictionary * _Nullable)extensionJson
completion:(completion_block _Nullable)completion;
|
Parameter Name |
Required |
Type |
Description |
msgName |
Yes |
NSString |
Signaling Name |
msgID |
Yes |
NSString |
Signaling ID |
toID |
Yes |
NSString |
The recipient of the signaling. Type NSString. For details, see the relevant definitions in TKRoomDefines.h. It can be a specific user ID, indicating that the signaling is sent only to that user |
data |
Yes |
NSObject |
Signaling content data, which can be Number, NSString, NSDictionary, or NSArray |
save |
Yes |
BOOL |
Whether to save. For details, see: Getting Started - Custom Signaling |
associatedMsgID |
No |
NSString |
Indicates that this signaling can be associated with another signaling. If the associated signaling is deleted, this signaling will also be deleted. If association is needed, provide the ID of another signaling; otherwise, pass nil |
associatedUserID |
No |
NSString |
Indicates that this signaling is associated with a user ID. If the associated user leaves the room, this signaling will also be deleted. If association is needed, provide the user ID; otherwise, pass nil |
expires |
Yes |
NSTimeInterval |
Indicates how long this signaling will last, in seconds, as a relative time. 0: Indicates no expiration. For example, if you publish a ClassBegin signaling (indicating the start of a class), after the specified expires time (relative time) has elapsed, the server will delete the ClassBegin signaling (indicating the end of the class) |
extensionJson |
No |
NSDictionary |
Signaling extension content, which can be extended according to your own needs. |
completion |
No |
completion_block |
Callback for completion of the call |
| NSDictionary * dict = @{@"nickname": @""}; //Can be customized
[_roomMgr pubMsg:@"msgName" // Customizable signaling name
msgID:@"msgID" // Customizable Signaling ID
toID:TKRoomPubMsgTellAll
data:dict
save:NO
associatedMsgID:nil
associatedUserID:nil
expires:0
extensionJson:@{@"write2DB" : @YES} //Can be extended according to business needs
completion:nil];
|
Type |
Description |
int |
0: Indicates that the call was successful. Non-zero: Indicates that the call failed |
delMsg
Delete custom signaling
Callback for deleting signaling:
-(void)roomManagerOnRemoteDelMsgWithMsgID:(NSString )msgID msgName:(NSString )msgName data:(NSObject )data fromID:(NSString )fromID inList:(BOOL)inlist ts:(long)ts
| - (int)delMsg:(NSString *)msgName
msgID:(NSString *)msgID
toID:(NSString *)toID
data:(NSObject * _Nullable)data
completion:(completion_block _Nullable)completion;
- (int)delMsg:(NSString *)msgName
msgID:(NSString *)msgID
toID:(NSString *)toID
data:(NSObject * _Nullable)dataextensionJson:(NSDictionary * _Nullable)extensionJson
completion:(completion_block _Nullable)completion;
|
Parameter Name |
Required |
Type |
Description |
msgName |
Yes |
TKLogLevel |
Signaling Name |
msgID |
Yes |
NSString |
Signaling ID |
toID |
Yes |
NSString |
The recipient of the signaling. Type NSString. For details, see the relevant definitions in TKRoomDefines.h. It can be a specific user ID, indicating that this signaling is sent only to that user |
data |
No |
NSObject |
Signaling content data, which can be Number, NSString, NSDictionary, or NSArray, and can be nil |
extensionJson |
No |
NSDictionary |
Signaling extension content, which can be extended according to your own needs |
completion |
No |
completion_block |
Callback for call completion |
| [_roomMgr delMsg:@"ChatShow" //Custom Name
msgID:@"ChatShow" //Custom ID
toID:TKRoomPubMsgTellAll
data:nil
extensionJson:nil
completion:nil];
|
Type |
Description |
int |
0: Indicates that the call was successful. Non-zero: Indicates that the call failed |
evictUser
Kick the user out of the room
| - (int)evictUser:(NSString *)peerID evictReason:(NSNumber *)reason completion:(completion_block _Nullable)completion;
- (int)evictUser:(NSString *)peerID completion:(completion_block _Nullable)completion;
|
Parameter Name |
Required |
Type |
Description |
peerID |
Yes |
NSString |
The ID of the user being kicked out |
reason |
Yes |
NSNumber |
Reason for being kicked out, which can be customized according to business needs |
completion |
No |
completion_block |
Callback for call completion |
| [_roomMgr evictUser:@"abd235674"
evictReason:@(400) // Can be customized according to business needs
completion:nil];
|
Type |
Description |
int |
0: Indicates that the call was successful. Non-zero: Indicates that the call failed |
switchOnlyAudioRoom
Switch to an audio-only room
You can freely switch the room to audio-only or a normal room. Audio-only room: In this type of room, all users will only publish audio and no video. After a successful switch, the callback is:
-(void)roomManagerOnAudioRoomSwitch:(NSString *)fromId onlyAudio:(BOOL)onlyAudio
- (int)switchOnlyAudioRoom:(BOOL)isSwitch;
Parameter Name |
Required |
Type |
Description |
isSwitch |
Yes |
BOOL |
Whether to switch |
[_roomMgr switchOnlyAudioRoom:NO];
Type |
Description |
int |
0: Indicates that the call was successful. Non-zero: Indicates that the call failed |
changeCurrentServer
Switch server
By calling this interface, you can switch the server connected by the SDK. You can call the interface - (NSArray * _Nullable)getServerList to obtain the list of available servers for the room.
- (int)changeCurrentServer:(NSString *)serverName;
Parameter Name |
Required |
Type |
Description |
serverName |
Yes |
NSString |
Server Name |
[_roomMgr changeCurrentServer:@"global"];
Type |
Description |
int |
0: Indicates that the call was successful. Non-zero: Indicates that the call failed |
changeUserProperty
Modify user attributes
You can call this interface to modify the attributes of a specified user, such as the number of trophies. After calling this, both you and other users will receive a callback for the successful modification:
-(void)roomManagerUserPropertyChanged:(NSString )peerID properties:(NSDictionary )properties fromId:(NSString *)fromId
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | - (int)changeUserProperty:(NSString *)peerID
tellWhom:(NSString *)tellWhom
key:(NSString *)key
value:(NSObject *)value
completion:(completion_block _Nullable)completion;
- (int)changeUserProperty:(NSString *)peerID
tellWhom:(NSString *)tellWhom
data:(NSDictionary *)data
completion:(completion_block _Nullable)completion;
- (int)changeUserProperty:(NSString *)peerID
tellWhom:(NSString *)tellWhom
property:(NSDictionary *)property
extensionJson:(NSDictionary * _Nullable)extensionJson
completion:(completion_block _Nullable)completion;
|
Parameter Name |
Required |
Type |
Description |
peerID |
Yes |
NSString |
User ID |
tellWhom |
Yes |
NSString |
Indicates that after successfully modifying the attributes of a specific user, the notification of this attribute change needs to be sent to other users in the room. Type NSString. For details, see the relevant definitions in TKRoomDefines.h. It can be a specific user ID, indicating that this signaling is sent only to that user |
key |
Yes |
NSString |
The name of the modified property |
value |
Yes |
NSObject |
The value corresponding to the modified property name |
data |
Yes |
NSDictionary |
The modified properties in key-value form, where the key represents the property name and the value represents the value corresponding to the property name |
extensionJson |
No |
NSDictionary |
Extension information, which can be appended according to business needs |
completion |
No |
completion_block |
Callback for completion of the call |
| [_roomMgr changeUserProperty:@"adc123456"
tellWhom:TKRoomPubMsgTellAll
data:@{@"publishState" : @"3"}
completion:nil];OR:
[_roomMgr changeUserProperty:@"adc123456"
tellWhom:TKRoomPubMsgTellAll
key:@"publishState"
value:@"3"
completion:nil];
|
Type |
Description |
int |
0: Indicates that the call was successful. Non-zero: Indicates that the call failed |
Notes
For more return error codes, please refer to the error code descriptions in TKRoomErrorCode