export declare interface ActionArgs { sender: string; gameData: string; roomId: string; SDK: { /** * 请求补帧 * @param beginFrameId - 起始帧号 * @param size - 请求帧数量 */ requestFrame: (beginFrameId: number, size: number) => Promise; sendData: (data: string, players?: string[]) => Promise; setCache: (key: string, value: string, expireTime: number) => Promise; getCache: (key: string) => Promise; deleteCache: (key: string) => Promise; setCacheIfNotExist: (key: string, value: string, expireTime: number) => Promise; getRoomInfo: () => Promise; log: { info: (message: string) => void; warn: (message: string) => void; error: (message: string) => void; }; updateRoomProperties: (updateRoomInfo: UpdateRoomInfo) => Promise; removePlayer: (playerId: string) => Promise; dismiss: () => Promise; 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; } declare interface PlayerInfo_2 { playerId: string; status?: number; customPlayerStatus?: number; customPlayerProperties?: string; teamId?: string; isRobot?: number; robotName?: string; matchParams?: Record; } /** * 帧广播消息 * @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