supersdk

文档中心

文档中心

下载文档

Server Module


The server module provides functions related to obtaining server list and character list.

Notes

Note 1: The server module needs to apply parameters and configure them in the packaging tool. After the connection is complete, check whether the connection is successful.

Note 2: The information acquired by the server module only displays the player’s historical character, server, and level information.

Note 3: The information provided by the server module cannot be used as a basis for game events.

Get server list

Interface description:Get server list.

Interface Call:

 [SuperSDK invoke:@"xsdk"
         funcName:@"queryServers"
       parameters:@{
                       @"yz_game_id":@"94",     // Game ID in game server opening system
                       @"opid"      :@"2107",   // Channel ID
                       @"opgameid"  :@"2021",   // Server cluster ID
                       @"packageId" :@"28",     // Package ID
                       @"pageSize"  :@"10",     // Separate server page, number of data items per page. The value must be greater than or equal to 1. Non-mandatory parameter
                       @"pageNo"    :@"1",      // Separate server page, page number, the value must be greater than or equal to 1. Non-mandatory parameter
                       @"backColums":@[@"op_sid"] // Optional return list, for details, check the remarks at the bottom of this interface
                   }];

Interface Callback:

 - (void)handlerCallback:(NSString *)moduleName
                funcName:(NSString *)funcName
              parameters:(NSString *)parameters {
    NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
    
    NSDictionary *retParam = nil;
    if (parameters) {
        NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code = [[retParam objectForKey:@"code"] intValue];
    NSString *desc = [retParam objectForKey:@"msg"];
    id data  = [retParam objectForKey:@"data"];
    
    if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
        
        if ([funcName isEqualToString:BCORE_FUNC_QUERY_SERVER]) {// Server query callback
            NSLog(@"Server query callback");
            if(code == BCORE_SUCCESS) {
                NSDictionary *serverInfos = data;
                NSLog(@"Server list info is:%@", serverInfos);
            }
            else {
                NSLog(@"Server list query failed, %@", desc);
            }
        }
    }
 }

Log Print:

 Received Callback
 moduleName : xsdk,
 funcName : queryServers,
 result : {
  "msg" : "Server list query successful",
  "data" : {
    "totalCount" : 2,
    "list" : [
      {
        "op_sid" : "1516440002",
        "type" : "44",
        "server_name" : "Test Server2",
        "is_recommend" : "1",
        "first_opentime" : "1537372800",
        "server_id" : "1516440002",
        "new_style" : "3",
        "is_active" : "1",
        "server_url" : "s1516440002-sbzh.youzu.com"
      },
      {
        "op_sid" : "1516440001",
        "type" : "44",
        "server_name" : "Test Server1",
        "is_recommend" : "1",
        "first_opentime" : "1537372800",
        "server_id" : "1516440001",
        "new_style" : "3",
        "is_active" : "1",
        "server_url" : "s1516440001-sbzh.youzu.com"
      }]
      },
  "code" : 1
 }

Get recommended server list (select)

Interface description:Get recommended server list.

Interface Call:

 [SuperSDK invoke:@"xsdk"
         funcName:@"queryRecoServers"
       parameters:@{
                       @"yz_game_id":@"94",  //  Game ID in game server opening system
                       @"opid"      :@"2107",// Channel ID
                       @"opgameid"  :@"2021",// Server cluster ID
                       @"packageId" :@"28",  // Package ID
                       @"pageSize"  :@"10",  // Separate server page, number of data items per page. The value must be greater than or equal to 1. Non-mandatory parameter
                       @"pageNo"    :@"1",   // Separate server page, page number, the value must be greater than or equal to 1. Non-mandatory parameter
                       @"backColums":@[@"cover_style"] // Optional return list, for details, see appendix below this interface. Cover_style is a mandatory field for this interface
                       @"isCache"   :@"1"    //Whether to use cache data, 1: Yes, 0, No, non-mandatory parameter, cache is used by default
                   }];

Interface Callback:

 - (void)handlerCallback:(NSString *)moduleName
                funcName:(NSString *)funcName
              parameters:(NSString *)parameters {
    NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
    
    NSDictionary *retParam = nil;
    if (parameters) {
        NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code = [[retParam objectForKey:@"code"] intValue];
    NSString *desc = [retParam objectForKey:@"msg"];
    id data  = [retParam objectForKey:@"data"];
    
    if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
        
        if ([funcName isEqualToString:@"queryRecoServers"]) {// Server query callback
            NSLog(@"Server query callback");
            if(code == BCORE_SUCCESS) {
                NSDictionary *serverInfos = data;
                NSLog(@"Server list info:%@", serverInfos);
            }
            else {
                NSLog(@"Server list query failed, %@", desc);
            }
        }
    }
 }

Log Print:

 Received Callback
 moduleName : xsdk,
 funcName : queryRecoServers,
 result : {
  "msg" : "Recommended server list query successful",
  "data" : {
    "list" : [
      {
        "op_sid" : "1516440002",
        "type" : "44",
        "server_name" : "Test Server2",
        "is_recommend" : "1",
        "first_opentime" : "1537372800",
        "server_id" : "1516440002",
        "new_style" : "3",
        "is_active" : "1",
        "server_url" : "s1516440002-sbzh.youzu.com",
    "cover_style":"1"
      },
      {
        "op_sid" : "1516440001",
        "type" : "44",
        "server_name" : "Test Server1",
        "is_recommend" : "1",
        "first_opentime" : "1537372800",
        "server_id" : "1516440001",
        "new_style" : "3",
        "is_active" : "1",
        "server_url" : "s1516440001-sbzh.youzu.com",
    "cover_style":"1"
      }]
      },
  "code" : 1
 }

Get recent last login character info (select)

Interface description:Get recent last login character info.

Interface Call:

 [SuperSDK invoke:@"xsdk"
         funcName:@"queryLastRole"
       parameters:@{
                       @"osdk_user_id":@"0060015_123",//SuperSDK log in callback's osdk_user_id
                       @"yz_game_id"  :@"94",//  Game ID in game server opening system
                       @"opid"        :@"2150",// Server ID
                       @"opgameid"    :@"2055",// Server cluster ID
                       @"packageId"   :@"28",  // Package ID
                       @"backColums"  :@[@"op_sid"]// Optional return list, for details, see remarks below retrieved server list
                   }];

Interface Callback:

 - (void)handlerCallback:(NSString *)moduleName
                funcName:(NSString *)funcName
              parameters:(NSString *)parameters {
    NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
    
    NSDictionary *retParam = nil;
    if (parameters) {
        NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code = [[retParam objectForKey:@"code"] intValue];
    NSString *desc = [retParam objectForKey:@"msg"];
    id data  = [retParam objectForKey:@"data"];
    
    if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
        
        if ([funcName isEqualToString:@"queryLastRole"]) {// Query current account's last login character info
            NSLog(@"Character query callback");
            if(code == BCORE_SUCCESS) {
                NSDictionary *roleInfo = data;
                NSLog(@"Last login character info:%@", roleInfo);
            }
            else {
                NSLog(@"Failed to pull data, reason %@", desc);
            }
        }
    }
 }

Log Print:

 2018-03-02 11:35:17.653954+0800 youzu[4076:1101447] ****** Received Callback
 moduleName : xsdk,
 funcName : queryLastRole,
 parameters : {
    code = 1;
    data = {
        level = 1;
        opid = 2107;
        "osdk_user_id" = "0060015_123";
        roleCreateTime = 1519959398;
        "role_id" = AUfegpIF;
        "role_name" = "\U54e5\U6765\U4e86";
        serverInfo =         {
            "first_opentime" = 1546185600;
            "is_active" = 1;
            "is_recommend" = 1;
            "new_style" = 4;
            "server_id" = 2021311322;
            "server_name" = "\U63a8\U8bda\U76f8\U4fe1(S1322)";
            "server_url" = "10.3.99.72";
            type = 31;
        };
        "server_id" = 2021311322;
        "vip_grade" = 0;
        "yz_game_id" = 94;
    };
    msg = "\U67e5\U8be2\U5f53\U524d\U8d26\U53f7\U6700\U8fd1\U767b\U5f55\U7684\U89d2\U8272\U4fe1\U606f\U6210\U529f";
}

Get character list

Interface description:Get character list.

Interface Call:

 [SuperSDK invoke:@"xsdk"
         funcName:@"queryRoles"
       parameters:@{
                       @"osdk_user_id":@"0060015_123",//SuperSDK log in callback's osdk_user_id
                       @"yz_game_id"  :@"94",         //  Game ID in game server opening system
                       @"opid"        :@"2150",       // Server ID
                       @"opgameid"    :@"2055",       // Server cluster ID
                       @"packageId"   :@"28",         // Package ID
                       @"backColums"  :@[@"op_sid"]   // Optional return list, for details, see remarks below retrieved server list
                   }];

Interface Callback:

 - (void)handlerCallback:(NSString *)moduleName
                funcName:(NSString *)funcName
              parameters:(NSString *)parameters {
    NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
    
    NSDictionary *retParam = nil;
    if (parameters) {
        NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code = [[retParam objectForKey:@"code"] intValue];
    NSString *desc = [retParam objectForKey:@"msg"];
    id data  = [retParam objectForKey:@"data"];
    
    if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
        
        if ([funcName isEqualToString:BCORE_FUNC_QUERY_ROLES]) {// Character query callback
            NSLog(@"Character query callback");
            if(code == BCORE_SUCCESS) {
                NSArray *roleList = [retParam objectForKey:@"data"];
                NSLog(@"Queried character info:%@", roleList);
            }
            else {
                NSLog(@"Failed to pull data, reason %@", desc);
            }
        }
    }
 }

Log Print:

 ****** Received Callback
 2018-03-02 11:35:53.913583+0800 youzu[4076:1101447] ****** Received Callback
 moduleName : xsdk,
 funcName : queryRoles,
 parameters : {
    code = 1;
    data = (
              {
            level = 1;
            opid = 2107;
            "osdk_user_id" = "0060015_123";
            roleCreateTime = 1519959398;
            "role_id" = AUfegpIF;
            "role_name" = "\U54e5\U6765\U4e86";
            serverInfo =             {
                "first_opentime" = 1546185600;
                "is_active" = 1;
                "is_recommend" = 1;
                "new_style" = 4;
                "server_id" = 2021311322;
                "server_name" = "\U63a8\U8bda\U76f8\U4fe1(S1322)";
                "server_url" = "10.3.99.72";
                type = 31;
            };
            "server_id" = 2021311322;
            "vip_grade" = 0;
            "yz_game_id" = 94;
        },
                {
            level = 1;
            opid = 2107;
            "osdk_user_id" = "0060015_123";
            roleCreateTime = 1519959421;
            "role_id" = oEKQXDCU;
            "role_name" = "\U5e26\U4f60\U8d70";
            serverInfo =             {
                "first_opentime" = 1546185600;
                "is_active" = 1;
                "is_recommend" = 1;
                "new_style" = 4;
                "server_id" = 2021311320;
                "server_name" = "\U522b\U4f5c\U826f\U56fe(S1320)";
                "server_url" = "10.3.99.72";
                type = 31;
            };
            "server_id" = 2021311320;
            "vip_grade" = 0;
            "yz_game_id" = 94;
        }
    );
    msg = "\U67e5\U8be2\U89d2\U8272\U4fe1\U606f\U6210\U529f";
}

Enter Game

Interface description:Enter Game event, compiles every character’s game login time, used to get the sort order during listing, and upload game login time.

Interface Call:

 NSDictionary *gameRole = @{
                             @"osdk_user_id": @"0060015_124",
                             @"yz_game_id": @"94",
                             @"server_id" : @"2021311106",
                             @"opid"      : @"2107",
                             @"role_id"   : @"KLMWElPwP",
                             @"role_name" : @"CoolGuy99",
                             @"level"     : @"1",
                             @"vip_grade" : @"0",
                             @"roleCreateTime":@([[NSDate date] timeIntervalSince1970]) //Always transmitted in character creation, game client retrieves server's timestamp to use as character creation time, 10 digits
                             };
            
 [SuperSDK invoke:@"xsdk" funcName:@"enterGame" parameters:gameRole];

Character Creation

Interface description:Call after user creates character.

Interface Call:

 NSDictionary *gameRole = @{
                             @"osdk_user_id": @"0060015_124",
                             @"yz_game_id": @"94",
                             @"server_id" : @"2021311106",
                             @"opid"      : @"2107",
                             @"role_id"   : @"KLMWElPwP",
                             @"role_name" : @"CoolGuy99",
                             @"level"     : @"1",
                             @"vip_grade" : @"0",
                             // @"extend" : @"", //Optional
                             @"roleCreateTime":@([[NSDate date] timeIntervalSince1970]) //Always transmitted in character creation, game client retrieves server's timestamp to use as character creation time, 10 digits
                             };
            
 [SuperSDK invoke:@"xsdk" funcName:@"createRole" parameters:gameRole];

Character Updates

Interface description:Call after user levels up character

Interface Call:

 NSDictionary *gameRole = @{
                             @"osdk_user_id": @"0060015_124",
                             @"yz_game_id": @"94",
                             @"server_id" : @"2021311106",
                             @"opid"      : @"2107",
                             @"role_id"   : @"KLMWElPwP",
                             @"role_name" : @"CoolGuy99",
                             @"level"     : @"10",
                             @"vip_grade" : @"0",
                             @"roleCreateTime"  :@([[NSDate date] timeIntervalSince1970]) //Always transmitted in character creation, game client retrieves server's timestamp to use as character creation time, 10 digits
                             };
 [SuperSDK invoke:@"xsdk" funcName:@"updateRole" parameters:gameRole];

Character Deletion (select)

Interface description:Delete a created character.

Interface Call:

 NSDictionary *gameRole = @{
                             @"osdk_user_id": @"0060015_124",
                             @"yz_game_id": @"94",
                             @"server_id" : @"2021311106",
                             @"opid"      : @"2107",
                             @"role_id"   : @"KLMWElPwP",
                             @"role_name" : @"CoolGuy99",
                             @"level"     : @"10",
                             @"vip_grade" : @"0",
                             @"roleCreateTime":@([[NSDate date] timeIntervalSince1970]) //Always transmitted in character creation, game client retrieves server's timestamp to use as character creation time, 10 digits
                             };
            
 [SuperSDK invoke:@"xsdk" funcName:@"deleteRoleNew" parameters:gameRole];

Interface Callback:

 - (void)handlerCallback:(NSString *)moduleName
                funcName:(NSString *)funcName
              parameters:(NSString *)parameters {
    NSLog(@"****** Received Callback\n moduleName : %@,\n funcName : %@,\n parameters : %@", moduleName, funcName, parameters);
    
    NSDictionary *retParam = nil;
    if (parameters) {
        NSData *jsonData = [parameters dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code = [[retParam objectForKey:@"code"] intValue];
    NSString *desc = [retParam objectForKey:@"msg"];
    id data  = [retParam objectForKey:@"data"];
    
    if ([moduleName isEqualToString:BCORE_MODULE_XSDK]) {// Character module callback
        
        if ([funcName isEqualToString: BCORE_FUNC_DELETE_ROLE]) {// Character query callback
            if(code == BCORE_SUCCESS) {
               NSLog(@"Character deleted");
            }
            else {
                NSLog(@"Failed to delete data, reason %@.", desc);
            }
        }
    }
 }

Return data format:

 ****** Received Callback
 moduleName : gserver,
 funcName : deleteRoleNew,
 parameters : {
  "msg" : "Character deleted",
  "code" : 1
 }

Set report interval (select)

Interface description:Set interval for updating character information. The default interval is 60 seconds. 0 means each update must be reported.

Interface Call:

 [SuperSDK invoke:@"xsdk" funcName:@"setUpdateInterval" parameters:@{@"seconds":@(60)}];

Appendix

Parameters are optional return list parameter, as follows

Return List Description
socket_domain socket domain name
socket_port socket port
op_sid Operations server ID
is_active Activated or not
is_recommend Recommended or not
server_url Server address
recharge_url Recharge address
recharge_opentime Recharge start time
notice_opentime Server opening notice time
fcm_time Anti-addiction time
cover_style Covers server status or not

Special Field Description

Field name Field description Value description
type server type 31:Normal Server, 41:Permanent Test Server, 42:Online Test Server, 43:Internal Test Server, 44:QATest Server
new_style New Style 1:Normal start (online more than 30 days), 3:Hot start (online 7-30 days), 4:Opening Soon (can appear at preview period or within IP whitelist), 5:Stop for maintenance, 6:Stop activation, 7:New Server (online for 1 week, 100:Recommended, 101:, 102:Crowded
cover_style Cover server status? 0 Dont cover, 1 Cover

FAQ

Q:The interface returned no data.

A:Access the request link from the browser, if no data is returned, requires operations to configuring the backend of the server opening system

Q:Data accessed from the browser is inconsistent with the data returned by the game interface.

A:Check if parameters such as opID and opGameID are correct, then check whether the backend configuration has enabled Intranet restrictions.