feat(rpc,network): 新增 RPC 库并迁移网络模块 (#364)
* feat(rpc,network): 新增 RPC 库并迁移网络模块 ## @esengine/rpc (新增) - 新增类型安全的 RPC 库,支持 WebSocket 通信 - 新增 RpcClient 类:connect/disconnect, call/send/on/off/once 方法 - 新增 RpcServer 类:Node.js WebSocket 服务端 - 新增编解码系统:支持 JSON 和 MessagePack - 新增 TextEncoder/TextDecoder polyfill,兼容微信小游戏平台 - 新增 WebSocketAdapter 接口,支持跨平台 WebSocket 抽象 ## @esengine/network (重构) - 重构 NetworkService:拆分为 RpcService 基类和 GameNetworkService - 新增 gameProtocol:类型安全的 API 和消息定义 - 新增类型安全便捷方法:sendInput(), onSync(), onSpawn(), onDespawn() - 更新 NetworkPlugin 使用新的服务架构 - 移除 TSRPC 依赖,改用 @esengine/rpc ## 文档 - 新增 RPC 模块文档(中英文) - 更新 Network 模块文档(中英文) - 更新侧边栏导航 * fix(network,cli): 修复 CI 构建和更新 CLI 适配器 ## 修复 - 在 tsconfig.build.json 添加 rpc 引用,修复类型声明生成 ## CLI 更新 - 更新 nodejs 适配器使用新的 @esengine/rpc - 生成的服务器代码使用 RpcServer 替代旧的 GameServer - 添加 ws 和 @types/ws 依赖 - 更新 README 模板中的客户端连接示例 * chore: 添加 CLI changeset * fix(ci): add @esengine/rpc to build and check scripts - Add rpc package to CI build step (must build before network) - Add rpc to type-check:framework, lint:framework, test:ci:framework * fix(rpc,network): fix tsconfig for declaration generation - Remove composite mode from rpc (not needed, causes CI issues) - Remove rpc from network project references (resolves via node_modules) - Remove unused references from network tsconfig.build.json
This commit is contained in:
@@ -1,28 +1,43 @@
|
||||
/**
|
||||
* @esengine/network
|
||||
* @zh @esengine/network 网络同步模块
|
||||
* @en @esengine/network Network synchronization module
|
||||
*
|
||||
* 基于 TSRPC 的网络同步模块(客户端)
|
||||
* TSRPC-based network synchronization module (client)
|
||||
* @zh 基于 @esengine/rpc 的网络同步模块,提供类型安全的多人游戏网络通信
|
||||
* @en Network synchronization module based on @esengine/rpc for type-safe multiplayer game communication
|
||||
*/
|
||||
|
||||
// ============================================================================
|
||||
// Re-export from protocols | 从协议包重新导出
|
||||
// Re-export from RPC | 从 RPC 包重新导出
|
||||
// ============================================================================
|
||||
|
||||
export { rpc } from '@esengine/rpc'
|
||||
export type {
|
||||
ServiceType,
|
||||
Vec2,
|
||||
IEntityState,
|
||||
IPlayerInput,
|
||||
MsgSync,
|
||||
MsgInput,
|
||||
MsgSpawn,
|
||||
MsgDespawn,
|
||||
ReqJoin,
|
||||
ResJoin
|
||||
} from '@esengine/network-protocols';
|
||||
ProtocolDef,
|
||||
ApiDef,
|
||||
MsgDef,
|
||||
ApiInput,
|
||||
ApiOutput,
|
||||
MsgData,
|
||||
ApiNames,
|
||||
MsgNames,
|
||||
RpcError,
|
||||
} from '@esengine/rpc'
|
||||
|
||||
export { serviceProto } from '@esengine/network-protocols';
|
||||
// ============================================================================
|
||||
// Protocol | 协议
|
||||
// ============================================================================
|
||||
|
||||
export {
|
||||
gameProtocol,
|
||||
type GameProtocol,
|
||||
type PlayerInput,
|
||||
type EntitySyncState,
|
||||
type SyncData,
|
||||
type SpawnData,
|
||||
type DespawnData,
|
||||
type JoinRequest,
|
||||
type JoinResponse,
|
||||
} from './protocol'
|
||||
|
||||
// ============================================================================
|
||||
// Tokens | 服务令牌
|
||||
@@ -32,37 +47,44 @@ export {
|
||||
NetworkServiceToken,
|
||||
NetworkSyncSystemToken,
|
||||
NetworkSpawnSystemToken,
|
||||
NetworkInputSystemToken
|
||||
} from './tokens';
|
||||
NetworkInputSystemToken,
|
||||
} from './tokens'
|
||||
|
||||
// ============================================================================
|
||||
// Plugin | 插件
|
||||
// ============================================================================
|
||||
|
||||
export { NetworkPlugin } from './NetworkPlugin';
|
||||
export { NetworkPlugin } from './NetworkPlugin'
|
||||
|
||||
// ============================================================================
|
||||
// Services | 服务
|
||||
// ============================================================================
|
||||
|
||||
export { NetworkService, ENetworkState } from './services/NetworkService';
|
||||
export type { INetworkCallbacks } from './services/NetworkService';
|
||||
export {
|
||||
RpcService,
|
||||
GameNetworkService,
|
||||
NetworkService,
|
||||
NetworkState,
|
||||
createNetworkService,
|
||||
} from './services/NetworkService'
|
||||
export type { NetworkServiceOptions } from './services/NetworkService'
|
||||
|
||||
// ============================================================================
|
||||
// Components | 组件
|
||||
// ============================================================================
|
||||
|
||||
export { NetworkIdentity } from './components/NetworkIdentity';
|
||||
export { NetworkTransform } from './components/NetworkTransform';
|
||||
export { NetworkIdentity } from './components/NetworkIdentity'
|
||||
export { NetworkTransform } from './components/NetworkTransform'
|
||||
|
||||
// ============================================================================
|
||||
// Systems | 系统
|
||||
// ============================================================================
|
||||
|
||||
export { NetworkSyncSystem } from './systems/NetworkSyncSystem';
|
||||
export { NetworkSpawnSystem } from './systems/NetworkSpawnSystem';
|
||||
export type { PrefabFactory } from './systems/NetworkSpawnSystem';
|
||||
export { NetworkInputSystem } from './systems/NetworkInputSystem';
|
||||
export { NetworkSyncSystem } from './systems/NetworkSyncSystem'
|
||||
export type { SyncMessage } from './systems/NetworkSyncSystem'
|
||||
export { NetworkSpawnSystem } from './systems/NetworkSpawnSystem'
|
||||
export type { PrefabFactory, SpawnMessage, DespawnMessage } from './systems/NetworkSpawnSystem'
|
||||
export { NetworkInputSystem } from './systems/NetworkInputSystem'
|
||||
|
||||
// ============================================================================
|
||||
// State Sync | 状态同步
|
||||
@@ -73,8 +95,8 @@ export type {
|
||||
ITransformState,
|
||||
ITransformStateWithVelocity,
|
||||
ISnapshotBufferConfig,
|
||||
ISnapshotBuffer
|
||||
} from './sync';
|
||||
ISnapshotBuffer,
|
||||
} from './sync'
|
||||
|
||||
export type {
|
||||
IInterpolator,
|
||||
@@ -82,8 +104,8 @@ export type {
|
||||
IInputSnapshot,
|
||||
IPredictedState,
|
||||
IPredictor,
|
||||
ClientPredictionConfig
|
||||
} from './sync';
|
||||
ClientPredictionConfig,
|
||||
} from './sync'
|
||||
|
||||
export {
|
||||
lerp,
|
||||
@@ -96,8 +118,8 @@ export {
|
||||
createTransformInterpolator,
|
||||
createHermiteTransformInterpolator,
|
||||
ClientPrediction,
|
||||
createClientPrediction
|
||||
} from './sync';
|
||||
createClientPrediction,
|
||||
} from './sync'
|
||||
|
||||
// ============================================================================
|
||||
// Blueprint Nodes | 蓝图节点
|
||||
@@ -114,5 +136,5 @@ export {
|
||||
HasAuthorityExecutor,
|
||||
GetNetworkIdExecutor,
|
||||
GetLocalPlayerIdExecutor,
|
||||
NetworkNodeDefinitions
|
||||
} from './nodes';
|
||||
NetworkNodeDefinitions,
|
||||
} from './nodes'
|
||||
|
||||
Reference in New Issue
Block a user