@esengine/network 1.0.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/NetworkPlugin.d.ts +56 -42
- package/dist/NetworkPlugin.d.ts.map +1 -1
- package/dist/index.d.ts +16 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +302 -184
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +160 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/services/NetworkService.d.ts +125 -39
- package/dist/services/NetworkService.d.ts.map +1 -1
- package/dist/systems/NetworkInputSystem.d.ts +14 -10
- package/dist/systems/NetworkInputSystem.d.ts.map +1 -1
- package/dist/systems/NetworkSpawnSystem.d.ts +49 -18
- package/dist/systems/NetworkSpawnSystem.d.ts.map +1 -1
- package/dist/systems/NetworkSyncSystem.d.ts +28 -17
- package/dist/systems/NetworkSyncSystem.d.ts.map +1 -1
- package/package.json +6 -7
package/dist/NetworkPlugin.d.ts
CHANGED
|
@@ -1,99 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zh 网络插件
|
|
3
|
+
* @en Network Plugin
|
|
4
|
+
*/
|
|
1
5
|
import { type IPlugin, Core, type ServiceContainer } from '@esengine/ecs-framework';
|
|
2
|
-
import {
|
|
6
|
+
import { GameNetworkService, type NetworkServiceOptions } from './services/NetworkService';
|
|
3
7
|
import { NetworkSyncSystem } from './systems/NetworkSyncSystem';
|
|
4
8
|
import { NetworkSpawnSystem, type PrefabFactory } from './systems/NetworkSpawnSystem';
|
|
5
9
|
import { NetworkInputSystem } from './systems/NetworkInputSystem';
|
|
6
10
|
/**
|
|
7
|
-
* 网络插件
|
|
8
|
-
* Network plugin
|
|
11
|
+
* @zh 网络插件
|
|
12
|
+
* @en Network plugin
|
|
9
13
|
*
|
|
10
|
-
* 提供基于
|
|
11
|
-
* Provides
|
|
14
|
+
* @zh 提供基于 @esengine/rpc 的网络同步功能
|
|
15
|
+
* @en Provides @esengine/rpc based network synchronization
|
|
12
16
|
*
|
|
13
17
|
* @example
|
|
14
18
|
* ```typescript
|
|
15
|
-
* import { Core } from '@esengine/ecs-framework'
|
|
16
|
-
* import { NetworkPlugin } from '@esengine/network'
|
|
19
|
+
* import { Core } from '@esengine/ecs-framework'
|
|
20
|
+
* import { NetworkPlugin } from '@esengine/network'
|
|
17
21
|
*
|
|
18
|
-
* const networkPlugin = new NetworkPlugin()
|
|
19
|
-
* await Core.installPlugin(networkPlugin)
|
|
22
|
+
* const networkPlugin = new NetworkPlugin()
|
|
23
|
+
* await Core.installPlugin(networkPlugin)
|
|
20
24
|
*
|
|
21
|
-
* // 连接到服务器
|
|
22
|
-
* await networkPlugin.connect('ws://localhost:3000', 'Player1')
|
|
25
|
+
* // 连接到服务器
|
|
26
|
+
* await networkPlugin.connect({ url: 'ws://localhost:3000', playerName: 'Player1' })
|
|
23
27
|
*
|
|
24
|
-
* // 注册预制体
|
|
28
|
+
* // 注册预制体
|
|
25
29
|
* networkPlugin.registerPrefab('player', (scene, spawn) => {
|
|
26
|
-
* const entity = scene.createEntity('Player')
|
|
27
|
-
* return entity
|
|
28
|
-
* })
|
|
30
|
+
* const entity = scene.createEntity('Player')
|
|
31
|
+
* return entity
|
|
32
|
+
* })
|
|
29
33
|
* ```
|
|
30
34
|
*/
|
|
31
35
|
export declare class NetworkPlugin implements IPlugin {
|
|
32
36
|
readonly name = "@esengine/network";
|
|
33
|
-
readonly version = "
|
|
37
|
+
readonly version = "2.0.0";
|
|
34
38
|
private _networkService;
|
|
35
39
|
private _syncSystem;
|
|
36
40
|
private _spawnSystem;
|
|
37
41
|
private _inputSystem;
|
|
42
|
+
private _localPlayerId;
|
|
38
43
|
/**
|
|
39
|
-
* 网络服务
|
|
40
|
-
* Network service
|
|
44
|
+
* @zh 网络服务
|
|
45
|
+
* @en Network service
|
|
41
46
|
*/
|
|
42
|
-
get networkService():
|
|
47
|
+
get networkService(): GameNetworkService;
|
|
43
48
|
/**
|
|
44
|
-
* 同步系统
|
|
45
|
-
* Sync system
|
|
49
|
+
* @zh 同步系统
|
|
50
|
+
* @en Sync system
|
|
46
51
|
*/
|
|
47
52
|
get syncSystem(): NetworkSyncSystem;
|
|
48
53
|
/**
|
|
49
|
-
* 生成系统
|
|
50
|
-
* Spawn system
|
|
54
|
+
* @zh 生成系统
|
|
55
|
+
* @en Spawn system
|
|
51
56
|
*/
|
|
52
57
|
get spawnSystem(): NetworkSpawnSystem;
|
|
53
58
|
/**
|
|
54
|
-
* 输入系统
|
|
55
|
-
* Input system
|
|
59
|
+
* @zh 输入系统
|
|
60
|
+
* @en Input system
|
|
56
61
|
*/
|
|
57
62
|
get inputSystem(): NetworkInputSystem;
|
|
58
63
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
64
|
+
* @zh 本地玩家 ID
|
|
65
|
+
* @en Local player ID
|
|
66
|
+
*/
|
|
67
|
+
get localPlayerId(): number;
|
|
68
|
+
/**
|
|
69
|
+
* @zh 是否已连接
|
|
70
|
+
* @en Is connected
|
|
61
71
|
*/
|
|
62
72
|
get isConnected(): boolean;
|
|
63
73
|
/**
|
|
64
|
-
* 安装插件
|
|
65
|
-
* Install plugin
|
|
74
|
+
* @zh 安装插件
|
|
75
|
+
* @en Install plugin
|
|
66
76
|
*/
|
|
67
77
|
install(_core: Core, _services: ServiceContainer): void;
|
|
68
78
|
/**
|
|
69
|
-
* 卸载插件
|
|
70
|
-
* Uninstall plugin
|
|
79
|
+
* @zh 卸载插件
|
|
80
|
+
* @en Uninstall plugin
|
|
71
81
|
*/
|
|
72
82
|
uninstall(): void;
|
|
73
83
|
private _setupSystems;
|
|
84
|
+
private _setupMessageHandlers;
|
|
74
85
|
/**
|
|
75
|
-
* 连接到服务器
|
|
76
|
-
* Connect to server
|
|
86
|
+
* @zh 连接到服务器
|
|
87
|
+
* @en Connect to server
|
|
77
88
|
*/
|
|
78
|
-
connect(
|
|
89
|
+
connect(options: NetworkServiceOptions & {
|
|
90
|
+
playerName: string;
|
|
91
|
+
roomId?: string;
|
|
92
|
+
}): Promise<boolean>;
|
|
79
93
|
/**
|
|
80
|
-
* 断开连接
|
|
81
|
-
* Disconnect
|
|
94
|
+
* @zh 断开连接
|
|
95
|
+
* @en Disconnect
|
|
82
96
|
*/
|
|
83
97
|
disconnect(): Promise<void>;
|
|
84
98
|
/**
|
|
85
|
-
* 注册预制体工厂
|
|
86
|
-
* Register prefab factory
|
|
99
|
+
* @zh 注册预制体工厂
|
|
100
|
+
* @en Register prefab factory
|
|
87
101
|
*/
|
|
88
102
|
registerPrefab(prefabType: string, factory: PrefabFactory): void;
|
|
89
103
|
/**
|
|
90
|
-
* 发送移动输入
|
|
91
|
-
* Send move input
|
|
104
|
+
* @zh 发送移动输入
|
|
105
|
+
* @en Send move input
|
|
92
106
|
*/
|
|
93
107
|
sendMoveInput(x: number, y: number): void;
|
|
94
108
|
/**
|
|
95
|
-
* 发送动作输入
|
|
96
|
-
* Send action input
|
|
109
|
+
* @zh 发送动作输入
|
|
110
|
+
* @en Send action input
|
|
97
111
|
*/
|
|
98
112
|
sendActionInput(action: string): void;
|
|
99
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkPlugin.d.ts","sourceRoot":"","sources":["../src/NetworkPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAc,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"NetworkPlugin.d.ts","sourceRoot":"","sources":["../src/NetworkPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAc,MAAM,yBAAyB,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,aAAc,YAAW,OAAO;IACzC,SAAgB,IAAI,uBAAsB;IAC1C,SAAgB,OAAO,WAAU;IAEjC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,cAAc,CAAY;IAElC;;;OAGG;IACH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED;;;OAGG;IACH,IAAI,UAAU,IAAI,iBAAiB,CAElC;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,kBAAkB,CAEpC;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,kBAAkB,CAEpC;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI;IASvD;;;OAGG;IACH,SAAS,IAAI,IAAI;IAIjB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACU,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBhH;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASxC;;;OAGG;IACI,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIvE;;;OAGG;IACI,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhD;;;OAGG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAG/C"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @esengine/network
|
|
2
|
+
* @zh @esengine/network 网络同步模块
|
|
3
|
+
* @en @esengine/network Network synchronization module
|
|
3
4
|
*
|
|
4
|
-
* 基于
|
|
5
|
-
*
|
|
5
|
+
* @zh 基于 @esengine/rpc 的网络同步模块,提供类型安全的多人游戏网络通信
|
|
6
|
+
* @en Network synchronization module based on @esengine/rpc for type-safe multiplayer game communication
|
|
6
7
|
*/
|
|
7
|
-
export
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
8
|
+
export { rpc } from '@esengine/rpc';
|
|
9
|
+
export type { ProtocolDef, ApiDef, MsgDef, ApiInput, ApiOutput, MsgData, ApiNames, MsgNames, RpcError, } from '@esengine/rpc';
|
|
10
|
+
export { gameProtocol, type GameProtocol, type PlayerInput, type EntitySyncState, type SyncData, type SpawnData, type DespawnData, type JoinRequest, type JoinResponse, } from './protocol';
|
|
11
|
+
export { NetworkServiceToken, NetworkSyncSystemToken, NetworkSpawnSystemToken, NetworkInputSystemToken, } from './tokens';
|
|
10
12
|
export { NetworkPlugin } from './NetworkPlugin';
|
|
11
|
-
export { NetworkService,
|
|
12
|
-
export type {
|
|
13
|
+
export { RpcService, GameNetworkService, NetworkService, NetworkState, createNetworkService, } from './services/NetworkService';
|
|
14
|
+
export type { NetworkServiceOptions } from './services/NetworkService';
|
|
13
15
|
export { NetworkIdentity } from './components/NetworkIdentity';
|
|
14
16
|
export { NetworkTransform } from './components/NetworkTransform';
|
|
15
17
|
export { NetworkSyncSystem } from './systems/NetworkSyncSystem';
|
|
18
|
+
export type { SyncMessage } from './systems/NetworkSyncSystem';
|
|
16
19
|
export { NetworkSpawnSystem } from './systems/NetworkSpawnSystem';
|
|
17
|
-
export type { PrefabFactory } from './systems/NetworkSpawnSystem';
|
|
20
|
+
export type { PrefabFactory, SpawnMessage, DespawnMessage } from './systems/NetworkSpawnSystem';
|
|
18
21
|
export { NetworkInputSystem } from './systems/NetworkInputSystem';
|
|
19
|
-
export type { IStateSnapshot, ITransformState, ITransformStateWithVelocity, ISnapshotBufferConfig, ISnapshotBuffer } from './sync';
|
|
20
|
-
export type { IInterpolator, IExtrapolator, IInputSnapshot, IPredictedState, IPredictor, ClientPredictionConfig } from './sync';
|
|
21
|
-
export { lerp, lerpAngle, smoothDamp, SnapshotBuffer, createSnapshotBuffer, TransformInterpolator, HermiteTransformInterpolator, createTransformInterpolator, createHermiteTransformInterpolator, ClientPrediction, createClientPrediction } from './sync';
|
|
22
|
-
export { IsLocalPlayerTemplate, IsServerTemplate, HasAuthorityTemplate, GetNetworkIdTemplate, GetLocalPlayerIdTemplate, IsLocalPlayerExecutor, IsServerExecutor, HasAuthorityExecutor, GetNetworkIdExecutor, GetLocalPlayerIdExecutor, NetworkNodeDefinitions } from './nodes';
|
|
22
|
+
export type { IStateSnapshot, ITransformState, ITransformStateWithVelocity, ISnapshotBufferConfig, ISnapshotBuffer, } from './sync';
|
|
23
|
+
export type { IInterpolator, IExtrapolator, IInputSnapshot, IPredictedState, IPredictor, ClientPredictionConfig, } from './sync';
|
|
24
|
+
export { lerp, lerpAngle, smoothDamp, SnapshotBuffer, createSnapshotBuffer, TransformInterpolator, HermiteTransformInterpolator, createTransformInterpolator, createHermiteTransformInterpolator, ClientPrediction, createClientPrediction, } from './sync';
|
|
25
|
+
export { IsLocalPlayerTemplate, IsServerTemplate, HasAuthorityTemplate, GetNetworkIdTemplate, GetLocalPlayerIdTemplate, IsLocalPlayerExecutor, IsServerExecutor, HasAuthorityExecutor, GetNetworkIdExecutor, GetLocalPlayerIdExecutor, NetworkNodeDefinitions, } from './nodes';
|
|
23
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACnC,YAAY,EACR,WAAW,EACX,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,GACX,MAAM,eAAe,CAAA;AAMtB,OAAO,EACH,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,GACpB,MAAM,YAAY,CAAA;AAMnB,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,GAC1B,MAAM,UAAU,CAAA;AAMjB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAM/C,OAAO,EACH,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,oBAAoB,GACvB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAMtE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAMhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAMjE,YAAY,EACR,cAAc,EACd,eAAe,EACf,2BAA2B,EAC3B,qBAAqB,EACrB,eAAe,GAClB,MAAM,QAAQ,CAAA;AAEf,YAAY,EACR,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,UAAU,EACV,sBAAsB,GACzB,MAAM,QAAQ,CAAA;AAEf,OAAO,EACH,IAAI,EACJ,SAAS,EACT,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,kCAAkC,EAClC,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,QAAQ,CAAA;AAMf,OAAO,EACH,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,GACzB,MAAM,SAAS,CAAA"}
|