squidGame/tgx-games-server/docs/apiPrivate/tsapi.md

8.3 KiB
Raw Blame History

TSRPC API 接口文档

通用说明

  • 所有请求方法均为 POST
  • 所有请求均需加入以下 Header :
    • Content-Type: application/json

目录


game

CreateRoom

路径

  • POST /game/CreateRoom

请求

interface ReqCreateRoom {
    roomId: string,
    displayId: string,
    roomName: string,
    gameType: string,
    password: string
}

响应

interface ResCreateRoom {
    roomId: string
}

配置

{
  "allowGuest": true
}

GetAllUserLocations

路径

  • POST /game/GetAllUserLocations

请求

interface ReqGetAllUserLocations {

}

响应

interface ResGetAllUserLocations {
    locations: {
        uid: string,
        roomId?: string,
        gameType?: string
    }[]
}

@en get all room states on this server, will be called by match server periodically

@zh 获取当前服务器上所有的房间状态,匹配服会按一定间隔调用

路径

  • POST /game/GetRoomStates

请求

interface ReqGetRoomStates {

}

响应

interface ResGetRoomStates {
    internalUrl: string,
    publicUrl: string,
    connNum: /*uint*/ number,
    rooms: {
        id: string,
        displayId: string,
        gameType: string,
        name: string,
        userNum: /*uint*/ number,
        maxUserNum: /*uint*/ number,
        playerNum: /*uint*/ number,
        maxPlayerNum: /*uint*/ number,
        /** 为 undefined 代表不在匹配中 */
        startMatchTime?: /*uint*/ number,
        updateTime: /*uint*/ number,
        password?: string
    }[],
    gameTypes: string[],
    disabled?: boolean
}

@en kick user

@zh 踢人

路径

  • POST /game/KickUser

请求

interface ReqKickUser {
    uid: string,
    reason: string
}

响应

interface ResKickUser {

}

master

GetGameServerList

路径

  • POST /master/GetGameServerList

请求

interface ReqGetGameServerList {

}

响应

interface ResGetGameServerList {
    serverList: {
        /**
        * @en server type
        * @zh 服务器类型
        */
        type: number,
        /**
        * @en server ip
        * @zh 服务器 IP
        */
        ip: string,
        /**
        * @en server port
        * @zh 服务器 端口
        */
        port: number,
        interalUrl?: string,
        /**
        * @en server public url, for client connection
        * @zh 服务器对外 URL用于客户端通信
        */
        publicUrl?: string,
        userNum?: number,
        roomNum?: number,
        lastUpdateTime?: number
    }[]
}

GetMatchServerList

路径

  • POST /master/GetMatchServerList

请求

interface ReqGetMatchServerList {

}

响应

interface ResGetMatchServerList {

}

GetUserLocation

路径

  • POST /master/GetUserLocation

请求

interface ReqGetUserLocation {
    uid: string
}

响应

interface ResGetUserLocation {
    serverUrl?: string,
    roomId?: string,
    gameType?: string
}

ReportServerState

路径

  • POST /master/ReportServerState

请求

interface ReqReportServerState {
    /**
    * @en server info, for cluster load balance and server list display
    * @zh 服务器信息,用于集群负载均衡,以及服务器列表显示
    */
    state: {
        /**
        * @en server type
        * @zh 服务器类型
        */
        type: number,
        /**
        * @en server ip
        * @zh 服务器 IP
        */
        ip: string,
        /**
        * @en server port
        * @zh 服务器 端口
        */
        port: number,
        interalUrl?: string,
        /**
        * @en server public url, for client connection
        * @zh 服务器对外 URL用于客户端通信
        */
        publicUrl?: string,
        userNum?: number,
        roomNum?: number,
        lastUpdateTime?: number
    }
}

响应

interface ResReportServerState {

}

UpdateUserLocation

路径

  • POST /master/UpdateUserLocation

请求

interface ReqUpdateUserLocation {
    uid: string,
    serverUrl?: string,
    roomId?: string,
    gameType?: string
}

响应

interface ResUpdateUserLocation {

}

UserLoginPrepare

路径

  • POST /master/UserLoginPrepare

请求

interface ReqUserLoginPrepare {
    uid: string,
    serverUrl: string
}

响应

interface ResUserLoginPrepare {

}

match

CancelMatch

路径

  • POST /match/CancelMatch

请求

interface ReqCancelMatch {
    uid: string
}

响应

interface ResCancelMatch {

}

CreateRoomOnMinLoadServer

路径

  • POST /match/CreateRoomOnMinLoadServer

请求

interface ReqCreateRoomOnMinLoadServer {
    uid: string,
    roomName: string,
    gameType: string,
    password: string
}

响应

interface ResCreateRoomOnMinLoadServer {
    serverUrl: string,
    roomId: string
}

GetRoomListByType

路径

  • POST /match/GetRoomListByType

请求

interface ReqGetRoomListByType {
    gameType: string
}

响应

interface ResGetRoomListByType {
    roomList: {
        id: string,
        displayId: string,
        gameType: string,
        name: string,
        userNum: /*uint*/ number,
        maxUserNum: /*uint*/ number,
        playerNum: /*uint*/ number,
        maxPlayerNum: /*uint*/ number,
        /** 为 undefined 代表不在匹配中 */
        startMatchTime?: /*uint*/ number,
        updateTime: /*uint*/ number,
        password?: string
    }[]
}

GetRoomServerState

路径

  • POST /match/GetRoomServerState

请求

interface ReqGetRoomServerState {
    roomId: string
}

响应

interface ResGetRoomServerState {
    state: {
        id: string,
        displayId: string,
        gameType: string,
        name: string,
        userNum: /*uint*/ number,
        maxUserNum: /*uint*/ number,
        playerNum: /*uint*/ number,
        maxPlayerNum: /*uint*/ number,
        /** 为 undefined 代表不在匹配中 */
        startMatchTime?: /*uint*/ number,
        updateTime: /*uint*/ number,
        password?: string
    } | undefined,
    serverInternalUrl: string | undefined,
    serverPublicUrl: string | undefined
}

StartMatch

路径

  • POST /match/StartMatch

请求

interface ReqStartMatch {
    uid: string,
    type: string,
    immediate?: boolean
}

响应

interface ResStartMatch {
    roomId: string,
    gameType: string,
    token: string,
    time: number,
    serverUrl: string
}

CheckServerAlive

路径

  • POST /CheckServerAlive

请求

interface ReqCheckServerAlive {

}

响应

interface ResCheckServerAlive {

}