diff --git a/common/src/main/java/cn/wildfirechat/common/APIPath.java b/common/src/main/java/cn/wildfirechat/common/APIPath.java index 76ae2256..7f88cefe 100644 --- a/common/src/main/java/cn/wildfirechat/common/APIPath.java +++ b/common/src/main/java/cn/wildfirechat/common/APIPath.java @@ -32,6 +32,8 @@ public interface APIPath { String User_Put_Setting = "/admin/user/put_setting"; String User_Get_Setting = "/admin/user/get_setting"; String User_Kickoff_Client = "/admin/user/kickoff_client"; + String User_Online_Count = "/admin/user/online_count"; + String User_Online_List = "/admin/user/online_list"; String Friend_Update_Status = "/admin/friend/status"; String Friend_Get_List = "/admin/friend/list"; diff --git a/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserCountResult.java b/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserCountResult.java new file mode 100644 index 00000000..4e5111d5 --- /dev/null +++ b/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserCountResult.java @@ -0,0 +1,10 @@ +package cn.wildfirechat.pojos; + +import java.util.ArrayList; + +public class GetOnlineUserCountResult extends ArrayList { + public static class Node { + public int node; + public int count; + } +} diff --git a/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserRequest.java b/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserRequest.java new file mode 100644 index 00000000..ea37741f --- /dev/null +++ b/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserRequest.java @@ -0,0 +1,9 @@ +package cn.wildfirechat.pojos; + +import java.util.ArrayList; + +public class GetOnlineUserRequest { + public int nodeId; + public int offset; + public int count; +} diff --git a/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserResult.java b/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserResult.java new file mode 100644 index 00000000..a46b89a1 --- /dev/null +++ b/common/src/main/java/cn/wildfirechat/pojos/GetOnlineUserResult.java @@ -0,0 +1,15 @@ +package cn.wildfirechat.pojos; + +import java.util.ArrayList; + +public class GetOnlineUserResult { + public static class UserClient { + public String userId; + public String clientId; + public int platform; + } + + ArrayList userClients; + public int totalCount; + public int offset; +} diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java index d02852d2..51c25f40 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java @@ -269,6 +269,24 @@ public class Main { System.out.println("destroy user failure"); System.exit(-1); } + + if (commercialServer) { + IMResult getOnlineUserCountResultIMResult = UserAdmin.getOnlineUserCount(); + if (getOnlineUserCountResultIMResult != null && getOnlineUserCountResultIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("get user online count success"); + } else { + System.out.println("get user online count failure"); + System.exit(-1); + } + + IMResult getOnlineUserResultIMResult = UserAdmin.getOnlineUser(1, 0, 100); + if (getOnlineUserResultIMResult != null && getOnlineUserResultIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("get user online success"); + } else { + System.out.println("get user online failure"); + System.exit(-1); + } + } } //*********************************************** diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/UserAdmin.java b/sdk/src/main/java/cn/wildfirechat/sdk/UserAdmin.java index 4892342e..89ab582c 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/UserAdmin.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/UserAdmin.java @@ -117,4 +117,16 @@ public class UserAdmin { inputUserId.setUserId(userId); return AdminHttpUtils.httpJsonPost(path, inputUserId, OutputDeviceList.class); } + + public static IMResult getOnlineUserCount() throws Exception { + return AdminHttpUtils.httpJsonPost(APIPath.User_Online_Count, null, GetOnlineUserCountResult.class); + } + + public static IMResult getOnlineUser(int nodeId, int offset, int count) throws Exception { + GetOnlineUserRequest request = new GetOnlineUserRequest(); + request.nodeId = nodeId; + request.offset = offset; + request.count = count; + return AdminHttpUtils.httpJsonPost(APIPath.User_Online_List, request, GetOnlineUserResult.class); + } }