subscribeUsersStatus
Description
info
Subscribe to the online status of specified users and return their online status.
Note
The maximum number of subscriptions per user cannot exceed 3000. If it exceeds, they will be eliminated according to the subscription time.
Related Callbacks:
onUserStatusChanged
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron/MiniProgram
- React-Native
- Unity
Function Prototype
Future<List<UserStatusInfo>> subscribeUsersStatus(
List<String> userIDs, {
String? operationID,
})
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| userIDs | List<String> | Yes | User ID list |
Return Result
| Parameter Name | Parameter Type | Description |
|---|---|---|
| then | List<UserStatusInfo > | Success callback |
| onError | Function | Failure callback |
Code Example
await OpenIM.iMManager.userManager.subscribeUsersStatus([]);
// todo
Function Prototype
- (void)subscribeUsersStatus:(NSArray<NSString *> *)userIDs
onSuccess:(nullable OIMUserStatusInfosCallback)onSuccess
onFailure:(nullable OIMFailureCallback)onFailure;
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| userIDs | NSArray<NSString *> | Yes | User ID list |
Return Result
| Parameter Name | Parameter Type | Description |
|---|---|---|
| onSuccess | NSArray<OIMUserStatusInfo > | Success return |
| onFailure | OIMFailureCallback | Failure return |
Code Example
[OIMManager.manager subscribeUsersStatus:@[]
onSuccess:^(NSArray<OIMUserStatusInfo *> * _Nullable statusInfos) {
} onFailure:^(NSInteger code, NSString * _Nullable msg) {
}];
Function Prototype
public void subscribeUsersOnlineStatus(OnBase<List<UsersOnlineStatus>> callBack, List<String> uid)
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| callback | OnBase<List<UsersOnlineStatus>> | Yes | Callback interface |
| ids | List<String> | Yes | User ID list |
Code Example
OpenIMClient.getInstance().userInfoManager.subscribeUsersOnlineStatus(new OnBase<List<UsersOnlineStatus>>() {
@Override
public void onError(int code, String error) {
}
@Override
public void onSuccess(List<UsersOnlineStatus> data) {
// todo
}
},ids);
Function Prototype
IMSDK.subscribeUsersStatus(userIDList: string[], operationID?: string): Promise<WsResponse<UserOnlineState[]>>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| userIDList | string[] | Yes | User ID list |
Return Result
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<WsResponse<UserOnlineState[]>> | User online status details list |
| Promise.catch() | Promise<WsResponse> | Failure callback |
Code Example
import { getSDK } from '@openim/wasm-client-sdk';
const IMSDK = getSDK();
// use in electron with ffi
// import { getWithRenderProcess } from '@openim/electron-client-sdk/lib/render';
// const { instance: IMSDK } = getWithRenderProcess();
// use in mini program
// import { getSDK } from '@openim/client-sdk';
// const IMSDK = getSDK();
const userIDList = ['userID1', 'userID2'];
IMSDK.subscribeUsersStatus(userIDList)
.then(({ data }) => {
// data: User online status details list
})
.catch(({ errCode, errMsg }) => {
// Call failed
});
Function Prototype
IMSDK.asyncApi('subscribeUsersStatus', operationID: string, userIDList: string[]): Promise<UserOnlineState[]>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| operationID | string | Yes | Operation ID, used to pinpoint issues, keep unique, prefer time+random |
| userIDList | string[] | Yes | User ID list |
Return Result
Use the
openim-uniapp-polyfillpackage to make the function Promise. When calling, you need to usethenandcatchto determine and handle success and failure callbacks.
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<UserOnlineState[]> | User online status details list |
| Promise.catch() | Promise<CatchResponse> | Failure callback |
Code Example
import IMSDK from 'openim-uniapp-polyfill';
const userIDList = ['userID1', 'userID2'];
IMSDK.asyncApi('subscribeUsersStatus', IMSDK.uuid(), userIDList)
.then((data) => {
// data: User online status details list
})
.catch(({ errCode, errMsg }) => {
// Call failed
});
Function Prototype
OpenIMSDK.subscribeUsersStatus(userIDList: string[], operationID?: string): Promise<UserOnlineState[]>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| userIDList | string[] | Yes | User ID list |
| operationID | string | No | Operation ID, used to pinpoint issues, keep unique, prefer time+random |
Return Result
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<UserOnlineState[]> | User online status details list |
| Promise.catch() | Promise<OpenIMApiError> | Failure callback |
Code Example
import OpenIMSDK from "@openim/rn-client-sdk";
const userIDList = ['userID1', 'userID2'];
OpenIMSDK.subscribeUsersStatus(userIDList)
.then((data) => {
// data: User online status details list
})
.catch((error) => {
// Call failed
});
Function Prototype
public static void SubscribeUsersStatus(OnBase<List<OnlineStatus>> cb, string[] userIds)
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| cb | OnBase<List<UsersOnlineStatus>> | Yes | Callback |
| userIdS | string[] | Yes | User ID collection |
Code Example
IMSDK.SubscribeUsersStatus((list, errCode, errMsg)=>{
},userIdS);