406 lines
9.2 KiB
TypeScript
406 lines
9.2 KiB
TypeScript
export declare interface ActionArgs {
|
||
sender: string;
|
||
gameData: string;
|
||
roomId: string;
|
||
SDK: {
|
||
/**
|
||
* 请求补帧
|
||
* @param beginFrameId - 起始帧号
|
||
* @param size - 请求帧数量
|
||
*/
|
||
requestFrame: (beginFrameId: number, size: number) => Promise<void>;
|
||
sendData: (data: string, players?: string[]) => Promise<void>;
|
||
setCache: (key: string, value: string, expireTime: number) => Promise<void>;
|
||
getCache: (key: string) => Promise<CacheValue>;
|
||
deleteCache: (key: string) => Promise<void>;
|
||
setCacheIfNotExist: (key: string, value: string, expireTime: number) => Promise<void>;
|
||
getRoomInfo: () => Promise<RoomInfo>;
|
||
log: {
|
||
info: (message: string) => void;
|
||
warn: (message: string) => void;
|
||
error: (message: string) => void;
|
||
};
|
||
updateRoomProperties: (updateRoomInfo: UpdateRoomInfo) => Promise<void>;
|
||
removePlayer: (playerId: string) => Promise<void>;
|
||
dismiss: () => Promise<void>;
|
||
getAutoFrame: () => boolean;
|
||
getFrameRate: () => number;
|
||
};
|
||
}
|
||
|
||
declare interface ArgsConfig {
|
||
sender: string;
|
||
roomId: string;
|
||
appId: string;
|
||
ticket: string;
|
||
domain: string;
|
||
projectId: string;
|
||
gameData?: string;
|
||
autoFrame: boolean;
|
||
frameRate: number;
|
||
frameRequesting: boolean;
|
||
frameRequestSize: number;
|
||
logger?: any;
|
||
}
|
||
|
||
export declare const enum AutoFrame {
|
||
AUTO_FRAME_OFF = 0,
|
||
AUTO_FRAME_ON = 1
|
||
}
|
||
|
||
declare interface BaseResponse {
|
||
ret: {
|
||
code: number;
|
||
msg?: string;
|
||
};
|
||
}
|
||
|
||
export declare interface CacheValue {
|
||
value?: string;
|
||
}
|
||
|
||
declare interface CacheValue_2 {
|
||
value?: string;
|
||
}
|
||
|
||
export declare type CommonFunc = (args: ActionArgs) => void;
|
||
|
||
declare interface CreateChannelResponse extends BaseResponse {
|
||
data: CreateChannelResponseData;
|
||
}
|
||
|
||
declare interface CreateChannelResponseData {
|
||
setupTicket: string;
|
||
joinTicket: string;
|
||
}
|
||
|
||
export declare type ErrorFunc = (error: GOBEError, args: ActionArgs) => void;
|
||
|
||
/**
|
||
* 附加信息
|
||
* @public
|
||
*/
|
||
export declare interface FrameExtInfo {
|
||
seed: number;
|
||
}
|
||
|
||
/**
|
||
* 帧数据信息
|
||
* @public
|
||
*/
|
||
export declare interface FrameInfo extends FramePlayerInfo {
|
||
data: string[];
|
||
timestamp: number;
|
||
}
|
||
|
||
/**
|
||
* 帧数据玩家信息
|
||
* @public
|
||
*/
|
||
export declare interface FramePlayerInfo {
|
||
playerId: string;
|
||
}
|
||
|
||
export declare type FramePlayerInfoFunc = (playerInfo: FramePlayerInfo, args: ActionArgs) => void;
|
||
|
||
/**
|
||
* 帧数据玩家信息
|
||
* @public
|
||
*/
|
||
export declare interface FramePlayerPropInfo {
|
||
playerId: string;
|
||
customProp: string;
|
||
}
|
||
|
||
/**
|
||
* 帧数据玩家信息
|
||
* @public
|
||
*/
|
||
export declare interface FramePlayerStatusInfo {
|
||
playerId: string;
|
||
customStatus: number;
|
||
}
|
||
|
||
/**
|
||
* 帧数据房间信息
|
||
* @public
|
||
*/
|
||
export declare interface FrameRoomInfo {
|
||
roomId: string;
|
||
roomName: string;
|
||
customProp: string;
|
||
roomOwner: string;
|
||
isPrivate: number;
|
||
isLock: boolean;
|
||
}
|
||
|
||
export declare interface GameServer {
|
||
onCreateRoom: CommonFunc;
|
||
onConnect?: CommonFunc;
|
||
onDisconnect?: CommonFunc;
|
||
onRecvFromClient?: CommonFunc;
|
||
onDestroyRoom: CommonFunc;
|
||
onJoin?: FramePlayerInfoFunc;
|
||
onLeave?: FramePlayerInfoFunc;
|
||
onStartFrameSync?: CommonFunc;
|
||
onStopFrameSync?: CommonFunc;
|
||
onRecvFrame?: OnRecvFrameFunc;
|
||
onRecvFromClientV2?: OnRecvFromClientFunc;
|
||
onRequestFrameError?: ErrorFunc;
|
||
onRoomPropertiesChange?: OnRoomPropertiesChangeFunc;
|
||
onUpdateCustomProperties?: OnUpdateCustomPropertiesFunc;
|
||
onUpdateCustomStatus?: OnUpdateCustomStatusFunc;
|
||
onRealTimeServerDisconnected?: CommonFunc;
|
||
onRealTimeServerConnected?: CommonFunc;
|
||
}
|
||
|
||
declare interface GetCacheResponse extends BaseResponse {
|
||
value?: string;
|
||
}
|
||
|
||
declare interface GetRoomInfoResponse extends BaseResponse {
|
||
roomInfo: RoomInfo_2;
|
||
}
|
||
|
||
export declare interface gobeDevloperCode {
|
||
appId: string;
|
||
gameServer: GameServer;
|
||
}
|
||
|
||
/**
|
||
* 自定义错误类
|
||
* @public
|
||
*/
|
||
export declare class GOBEError extends Error {
|
||
code: number;
|
||
constructor(code: number, message?: string);
|
||
}
|
||
|
||
export declare const enum ImType {
|
||
ALL_PLAYERS_EXCEPT_ME = 1,
|
||
SPECIFILED_PLAYERS = 2
|
||
}
|
||
|
||
/**
|
||
* 云侧sdk接口定义文档
|
||
*/
|
||
declare interface MethodRoute {
|
||
createRoom: (request: ServerLessMethodRequest) => void;
|
||
}
|
||
|
||
export declare const myHandler: (event: serverInterface.ServerLessEvent, context: serverInterface.ServerLessContext, callback: (res: any) => void, logger: any) => void;
|
||
|
||
export declare type OnRecvFrameFunc = (msg: RecvFrameMessage | RecvFrameMessage[], args: ActionArgs) => void;
|
||
|
||
export declare type OnRecvFromClientFunc = (msg: RecvFromClientInfo, args: ActionArgs) => void;
|
||
|
||
export declare type OnRoomPropertiesChangeFunc = (msg: FrameRoomInfo, args: ActionArgs) => void;
|
||
|
||
export declare type OnUpdateCustomPropertiesFunc = (player: FramePlayerPropInfo, args: ActionArgs) => void;
|
||
|
||
export declare type OnUpdateCustomStatusFunc = (msg: FramePlayerStatusInfo, args: ActionArgs) => void;
|
||
|
||
export declare interface PlayerInfo {
|
||
playerId: string;
|
||
status?: number;
|
||
customPlayerStatus?: number;
|
||
customPlayerProperties?: string;
|
||
teamId?: string;
|
||
isRobot?: number;
|
||
robotName?: string;
|
||
matchParams?: Record<string, string>;
|
||
}
|
||
|
||
declare interface PlayerInfo_2 {
|
||
playerId: string;
|
||
status?: number;
|
||
customPlayerStatus?: number;
|
||
customPlayerProperties?: string;
|
||
teamId?: string;
|
||
isRobot?: number;
|
||
robotName?: string;
|
||
matchParams?: Record<string, string>;
|
||
}
|
||
|
||
/**
|
||
* 帧广播消息
|
||
* @public
|
||
*/
|
||
export declare interface RecvFrameMessage extends ServerFrameMessage {
|
||
isReplay: boolean;
|
||
time: number;
|
||
}
|
||
|
||
/**
|
||
* 房间消息广播回调参数
|
||
* @param roomId - 房间ID
|
||
* @param sendPlayerId - 发送者playerId
|
||
* @param msg - 消息内容
|
||
* @public
|
||
*/
|
||
export declare interface RecvFromClientInfo {
|
||
srcPlayer: string;
|
||
msg: string;
|
||
}
|
||
|
||
export declare interface RoomInfo {
|
||
appId: string;
|
||
roomId: string;
|
||
roomType: string;
|
||
roomCode: string;
|
||
roomName: string;
|
||
roomStatus: number;
|
||
customRoomProperties: string;
|
||
ownerId: string;
|
||
maxPlayers: number;
|
||
players: PlayerInfo[];
|
||
router: RouterInfo;
|
||
isPrivate: number;
|
||
createTime: number;
|
||
}
|
||
|
||
declare interface RoomInfo_2 {
|
||
appId: string;
|
||
roomId: string;
|
||
roomType: string;
|
||
roomCode: string;
|
||
roomName: string;
|
||
roomStatus: number;
|
||
customRoomProperties: string;
|
||
ownerId: string;
|
||
maxPlayers: number;
|
||
players: PlayerInfo_2[];
|
||
router: RouterInfo_2;
|
||
isPrivate: number;
|
||
createTime: number;
|
||
}
|
||
|
||
export declare interface RouterInfo {
|
||
routerId: number;
|
||
routerType: number;
|
||
routerAddr: string;
|
||
}
|
||
|
||
declare interface RouterInfo_2 {
|
||
routerId: number;
|
||
routerType: number;
|
||
routerAddr: string;
|
||
}
|
||
|
||
/**
|
||
* 服务端 ACK 消息
|
||
*/
|
||
declare interface ServerAckMessage {
|
||
rtnCode: number;
|
||
msg: string;
|
||
}
|
||
|
||
/**
|
||
* 服务端推送消息
|
||
* @public
|
||
*/
|
||
export declare interface ServerFrameMessage {
|
||
currentRoomFrameId: number;
|
||
frameInfo: FrameInfo[];
|
||
ext: FrameExtInfo;
|
||
}
|
||
|
||
/**
|
||
* 服务端返回帧数据玩家信息
|
||
* @public
|
||
*/
|
||
export declare interface ServerFramePlayerInfo extends FramePlayerInfo {
|
||
extraInfo?: string;
|
||
}
|
||
|
||
declare namespace serverInterface {
|
||
export {
|
||
MethodRoute,
|
||
ServerLessEvent,
|
||
ServerLessEventBody,
|
||
ServerLessEventBodyRequest,
|
||
ServerLessContext,
|
||
ServerLessMethodRequest,
|
||
ArgsConfig,
|
||
ServerAckMessage,
|
||
BaseResponse,
|
||
GetRoomInfoResponse,
|
||
CreateChannelResponse,
|
||
GetCacheResponse,
|
||
CreateChannelResponseData,
|
||
RoomInfo_2 as RoomInfo,
|
||
PlayerInfo_2 as PlayerInfo,
|
||
RouterInfo_2 as RouterInfo,
|
||
CacheValue_2 as CacheValue
|
||
}
|
||
}
|
||
|
||
declare interface ServerLessContext {
|
||
env: {
|
||
GOBE_EDGE_DOMAIN: string;
|
||
DEVELOPER_PROJECT_ID: string;
|
||
DEVELOPER_APP_ID: string;
|
||
WS_HEARTBEAT_CYCLE: string;
|
||
};
|
||
}
|
||
|
||
declare interface ServerLessEvent {
|
||
body: string;
|
||
headers: {
|
||
ticket: string;
|
||
};
|
||
}
|
||
|
||
declare interface ServerLessEventBody {
|
||
method: keyof MethodRoute;
|
||
request: string;
|
||
data: string;
|
||
}
|
||
|
||
declare interface ServerLessEventBodyRequest {
|
||
roomId: string;
|
||
operator?: string;
|
||
epAddress: string;
|
||
setupTicket: string;
|
||
joinTicket: string;
|
||
autoFrame: string;
|
||
frameRate: string;
|
||
}
|
||
|
||
declare interface ServerLessMethodRequest {
|
||
roomId: string;
|
||
operator?: string;
|
||
ticket: string;
|
||
domain: string;
|
||
data: string;
|
||
projectId: string;
|
||
logger: any;
|
||
appId: string;
|
||
epAddress: string;
|
||
setupTicket: string;
|
||
joinTicket: string;
|
||
autoFrame: string;
|
||
frameRate: string;
|
||
wsHeartbeatCycle: string;
|
||
}
|
||
|
||
/**
|
||
* 可以更新的房间信息属性
|
||
* @public
|
||
* @param roomName - 房间名称
|
||
* @param customRoomProperties - 房间自定义属性
|
||
* @param ownerId - 房主ID
|
||
* @param isPrivate - 是否私有
|
||
* @param isLock - 是否锁定房间 0:非锁定(允许加入房间),1:锁定(不允许加入房间)
|
||
*/
|
||
export declare interface UpdateRoomInfo {
|
||
roomName?: string;
|
||
customRoomProperties?: string;
|
||
ownerId?: string;
|
||
isPrivate?: number;
|
||
isLock?: number;
|
||
}
|
||
|
||
export { }
|
||
export as namespace GOBERTS
|