184 lines
3.3 KiB
TypeScript
184 lines
3.3 KiB
TypeScript
|
|
/**
|
|||
|
|
* 网络库 TSRPC 协议定义
|
|||
|
|
* 定义所有网络消息的类型和结构
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 客户端连接请求
|
|||
|
|
*/
|
|||
|
|
export interface ReqJoinRoom {
|
|||
|
|
/** 房间ID,可选 */
|
|||
|
|
roomId?: string;
|
|||
|
|
/** 客户端信息 */
|
|||
|
|
clientInfo?: {
|
|||
|
|
/** 客户端版本 */
|
|||
|
|
version: string;
|
|||
|
|
/** 客户端平台 */
|
|||
|
|
platform: string;
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 客户端连接响应
|
|||
|
|
*/
|
|||
|
|
export interface ResJoinRoom {
|
|||
|
|
/** 分配的客户端ID */
|
|||
|
|
clientId: number;
|
|||
|
|
/** 房间ID */
|
|||
|
|
roomId: string;
|
|||
|
|
/** 服务端信息 */
|
|||
|
|
serverInfo: {
|
|||
|
|
/** 服务端版本 */
|
|||
|
|
version: string;
|
|||
|
|
/** 同步频率 */
|
|||
|
|
syncRate: number;
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 网络消息广播
|
|||
|
|
*/
|
|||
|
|
export interface MsgNetworkMessage {
|
|||
|
|
/** 消息类型 */
|
|||
|
|
type: 'syncvar' | 'rpc';
|
|||
|
|
/** 网络对象ID */
|
|||
|
|
networkId: number;
|
|||
|
|
/** 消息数据 */
|
|||
|
|
data: any;
|
|||
|
|
/** 时间戳 */
|
|||
|
|
timestamp: number;
|
|||
|
|
/** 发送者客户端ID */
|
|||
|
|
senderId?: number;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* SyncVar 同步消息
|
|||
|
|
*/
|
|||
|
|
export interface MsgSyncVar {
|
|||
|
|
/** 网络对象ID */
|
|||
|
|
networkId: number;
|
|||
|
|
/** 组件类型名 */
|
|||
|
|
componentType: string;
|
|||
|
|
/** 属性名 */
|
|||
|
|
propertyName: string;
|
|||
|
|
/** 新的属性值 */
|
|||
|
|
value: any;
|
|||
|
|
/** 时间戳 */
|
|||
|
|
timestamp: number;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* RPC 调用消息
|
|||
|
|
*/
|
|||
|
|
export interface MsgRpcCall {
|
|||
|
|
/** 网络对象ID */
|
|||
|
|
networkId: number;
|
|||
|
|
/** 组件类型名 */
|
|||
|
|
componentType: string;
|
|||
|
|
/** 方法名 */
|
|||
|
|
methodName: string;
|
|||
|
|
/** 参数 */
|
|||
|
|
args: any[];
|
|||
|
|
/** 是否为客户端RPC */
|
|||
|
|
isClientRpc: boolean;
|
|||
|
|
/** 时间戳 */
|
|||
|
|
timestamp: number;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 网络对象生成通知
|
|||
|
|
*/
|
|||
|
|
export interface MsgNetworkObjectSpawn {
|
|||
|
|
/** 网络对象ID */
|
|||
|
|
networkId: number;
|
|||
|
|
/** 实体名称 */
|
|||
|
|
entityName: string;
|
|||
|
|
/** 所有者客户端ID */
|
|||
|
|
ownerId: number;
|
|||
|
|
/** 是否拥有权威 */
|
|||
|
|
hasAuthority: boolean;
|
|||
|
|
/** 初始组件数据 */
|
|||
|
|
components: Array<{
|
|||
|
|
/** 组件类型 */
|
|||
|
|
type: string;
|
|||
|
|
/** 组件数据 */
|
|||
|
|
data: any;
|
|||
|
|
}>;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 网络对象销毁通知
|
|||
|
|
*/
|
|||
|
|
export interface MsgNetworkObjectDespawn {
|
|||
|
|
/** 网络对象ID */
|
|||
|
|
networkId: number;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 客户端断开连接通知
|
|||
|
|
*/
|
|||
|
|
export interface MsgClientDisconnected {
|
|||
|
|
/** 断开连接的客户端ID */
|
|||
|
|
clientId: number;
|
|||
|
|
/** 断开原因 */
|
|||
|
|
reason?: string;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 权威转移通知
|
|||
|
|
*/
|
|||
|
|
export interface MsgAuthorityChange {
|
|||
|
|
/** 网络对象ID */
|
|||
|
|
networkId: number;
|
|||
|
|
/** 新的权威所有者ID */
|
|||
|
|
newOwnerId: number;
|
|||
|
|
/** 是否拥有权威 */
|
|||
|
|
hasAuthority: boolean;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 服务端状态查询请求
|
|||
|
|
*/
|
|||
|
|
export interface ReqServerStatus {}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 服务端状态响应
|
|||
|
|
*/
|
|||
|
|
export interface ResServerStatus {
|
|||
|
|
/** 连接的客户端数量 */
|
|||
|
|
clientCount: number;
|
|||
|
|
/** 网络对象数量 */
|
|||
|
|
networkObjectCount: number;
|
|||
|
|
/** 服务器运行时间(毫秒) */
|
|||
|
|
uptime: number;
|
|||
|
|
/** 网络统计 */
|
|||
|
|
networkStats: {
|
|||
|
|
/** 发送的消息数 */
|
|||
|
|
messagesSent: number;
|
|||
|
|
/** 接收的消息数 */
|
|||
|
|
messagesReceived: number;
|
|||
|
|
/** 发送的字节数 */
|
|||
|
|
bytesSent: number;
|
|||
|
|
/** 接收的字节数 */
|
|||
|
|
bytesReceived: number;
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 心跳请求
|
|||
|
|
*/
|
|||
|
|
export interface ReqPing {
|
|||
|
|
/** 客户端时间戳 */
|
|||
|
|
timestamp: number;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 心跳响应
|
|||
|
|
*/
|
|||
|
|
export interface ResPing {
|
|||
|
|
/** 服务端时间戳 */
|
|||
|
|
serverTimestamp: number;
|
|||
|
|
/** 客户端时间戳(回传) */
|
|||
|
|
clientTimestamp: number;
|
|||
|
|
}
|