@roomkit/gateway 1.2.0 → 1.3.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.
Files changed (33) hide show
  1. package/README.md +182 -47
  2. package/dist/src/config/config.module.d.ts +3 -0
  3. package/dist/src/config/config.module.d.ts.map +1 -1
  4. package/dist/src/config/config.module.js +16 -6
  5. package/dist/src/config/config.module.js.map +1 -1
  6. package/dist/src/config/config.service.d.ts +17 -1
  7. package/dist/src/config/config.service.d.ts.map +1 -1
  8. package/dist/src/config/config.service.js +17 -16
  9. package/dist/src/config/config.service.js.map +1 -1
  10. package/dist/src/config/gateway.config.d.ts +2 -0
  11. package/dist/src/config/gateway.config.d.ts.map +1 -1
  12. package/dist/src/config/gateway.config.js +1 -0
  13. package/dist/src/config/gateway.config.js.map +1 -1
  14. package/dist/src/gateway.module.d.ts +2 -0
  15. package/dist/src/gateway.module.d.ts.map +1 -1
  16. package/dist/src/gateway.module.js +1 -1
  17. package/dist/src/gateway.module.js.map +1 -1
  18. package/dist/src/index.d.ts.map +1 -1
  19. package/dist/src/index.js +21 -16
  20. package/dist/src/index.js.map +1 -1
  21. package/dist/src/redis/redis.service.d.ts +5 -0
  22. package/dist/src/redis/redis.service.d.ts.map +1 -1
  23. package/dist/src/redis/redis.service.js +41 -3
  24. package/dist/src/redis/redis.service.js.map +1 -1
  25. package/dist/src/ws/message-router.service.d.ts +11 -0
  26. package/dist/src/ws/message-router.service.d.ts.map +1 -1
  27. package/dist/src/ws/message-router.service.js +67 -1
  28. package/dist/src/ws/message-router.service.js.map +1 -1
  29. package/dist/src/ws/response-handler.service.d.ts +11 -1
  30. package/dist/src/ws/response-handler.service.d.ts.map +1 -1
  31. package/dist/src/ws/response-handler.service.js +56 -3
  32. package/dist/src/ws/response-handler.service.js.map +1 -1
  33. package/package.json +18 -4
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @roomkit/gateway
2
2
 
3
- WebSocket Gateway server for the RoomKit framework.
3
+ WebSocket Gateway server for the RoomKit framework - handles client connections and routes messages to workers.
4
4
 
5
5
  ## Installation
6
6
 
@@ -12,81 +12,216 @@ npm install @roomkit/gateway @roomkit/core
12
12
 
13
13
  - 🌐 **WebSocket Server** - High-performance WebSocket connections
14
14
  - 🔄 **Message Routing** - Route messages between clients and workers
15
- - 📊 **Metrics** - Built-in Prometheus metrics
16
- - 🔒 **Rate Limiting** - Protect against abuse
15
+ - 📊 **Metrics & Monitoring** - Built-in Prometheus metrics
16
+ - 🔒 **Rate Limiting** - Protect against abuse with configurable limits
17
17
  - 💪 **Session Management** - Persistent sessions with Redis
18
- - 🔌 **Horizontal Scaling** - Multiple gateway instances supported
18
+ - 🔌 **Horizontal Scaling** - Run multiple gateway instances
19
+ - ⚡ **Production Ready** - Battle-tested in production environments
19
20
 
20
21
  ## Quick Start
21
22
 
22
- ### Environment Variables
23
+ ```typescript
24
+ import { createGateway } from '@roomkit/gateway';
25
+
26
+ const gateway = await createGateway({
27
+ redis: 'redis://localhost:6379',
28
+ ws: {
29
+ port: 27100,
30
+ maxConnections: 10000
31
+ },
32
+ admin: {
33
+ port: 27200
34
+ },
35
+ });
36
+
37
+ await gateway.listen();
38
+ console.log(\`Gateway listening on port \${gateway.wsPort}\`);
39
+ ```
23
40
 
24
- ```bash
25
- # Server
26
- PORT=27100
27
- ADMIN_PORT=27200
41
+ ## Configuration
28
42
 
29
- # Redis
30
- REDIS_HOST=localhost
31
- REDIS_PORT=6379
32
- REDIS_PASSWORD=
43
+ ### Redis Configuration
44
+
45
+ ```typescript
46
+ // Option 1: URL string
47
+ redis: 'redis://:password@localhost:6379/0'
33
48
 
34
- # Gateway
35
- GATEWAY_ID=gateway-1
49
+ // Option 2: Object
50
+ redis: {
51
+ host: 'localhost',
52
+ port: 6379,
53
+ password: 'your-password',
54
+ db: 0
55
+ }
36
56
  ```
37
57
 
38
- ### Run Gateway
58
+ ### WebSocket Configuration
39
59
 
40
- ```bash
41
- # Using the binary
42
- npx @roomkit/gateway
60
+ ```typescript
61
+ ws: {
62
+ port: 27100, // WebSocket port (default: 27100)
63
+ maxConnections: 10000, // Max concurrent connections (default: 10000)
64
+ heartbeatInterval: 30000, // Heartbeat interval in ms (default: 30000)
65
+ heartbeatTimeout: 90000, // Heartbeat timeout in ms (default: 90000)
66
+ idleConnectionTimeout: 60000, // Idle timeout after auth in ms (default: 60000)
67
+ }
68
+ ```
69
+
70
+ ### Rate Limiting
43
71
 
44
- # Or using Node.js
45
- node node_modules/@roomkit/gateway/dist/main.js
72
+ ```typescript
73
+ rateLimit: {
74
+ connections: 100, // New connections per second (default: 100)
75
+ messages: 50, // Messages per connection per second (default: 50)
76
+ burst: 100, // Message burst limit (default: 100)
77
+ global: 50000, // Global messages per second (default: 50000)
78
+ }
46
79
  ```
47
80
 
48
- ### Docker
81
+ ### Admin API
49
82
 
50
- ```bash
51
- docker run -e REDIS_HOST=redis \
52
- -e GATEWAY_ID=gateway-1 \
53
- -p 27100:27100 \
54
- -p 27200:27200 \
55
- roomkit/gateway
83
+ ```typescript
84
+ admin: {
85
+ port: 27200, // Admin API port (default: 27200)
86
+ enabled: true // Enable admin API (default: true)
87
+ }
56
88
  ```
57
89
 
58
- ## Configuration
90
+ ## Complete Example
91
+
92
+ ```typescript
93
+ import { createGateway } from '@roomkit/gateway';
94
+
95
+ const gateway = await createGateway({
96
+ // Optional: Custom gateway ID (auto-generated if not provided)
97
+ id: 'gateway-1',
98
+
99
+ // Redis configuration (required)
100
+ redis: {
101
+ host: process.env.REDIS_HOST || 'localhost',
102
+ port: parseInt(process.env.REDIS_PORT || '6379'),
103
+ password: process.env.REDIS_PASSWORD,
104
+ },
105
+
106
+ // WebSocket configuration
107
+ ws: {
108
+ port: 27100,
109
+ maxConnections: 10000,
110
+ heartbeatInterval: 30000,
111
+ heartbeatTimeout: 90000,
112
+ },
113
+
114
+ // Rate limiting
115
+ rateLimit: {
116
+ connections: 100,
117
+ messages: 50,
118
+ burst: 100,
119
+ global: 50000,
120
+ },
121
+
122
+ // Admin API
123
+ admin: {
124
+ port: 27200,
125
+ enabled: true,
126
+ },
127
+ });
128
+
129
+ // Start the gateway
130
+ await gateway.listen();
131
+
132
+ // Graceful shutdown
133
+ process.on('SIGTERM', async () => {
134
+ await gateway.close();
135
+ process.exit(0);
136
+ });
137
+ ```
138
+
139
+ ## Environment Variables
59
140
 
60
- Create a `.env` file:
141
+ The gateway supports basic environment variables for infrastructure configuration:
61
142
 
62
- ```env
63
- PORT=27100
64
- ADMIN_PORT=27200
143
+ ```bash
144
+ # Redis (infrastructure)
65
145
  REDIS_HOST=localhost
66
146
  REDIS_PORT=6379
67
- GATEWAY_ID=gateway-1
147
+ REDIS_PASSWORD=your-password
148
+
149
+ # Note: Application-level configs (ports, limits, etc.) should be
150
+ # passed via code parameters for better type safety and clarity.
68
151
  ```
69
152
 
70
153
  ## Admin API
71
154
 
72
- The gateway provides an admin API on port `ADMIN_PORT`:
155
+ The gateway provides an HTTP admin API for monitoring and management:
156
+
157
+ ### Health Check
158
+ \`\`\`bash
159
+ GET http://localhost:27200/health
160
+ \`\`\`
161
+
162
+ ### Metrics
163
+ \`\`\`bash
164
+ GET http://localhost:27200/metrics
165
+ \`\`\`
166
+
167
+ ### Connection Stats
168
+ \`\`\`bash
169
+ GET http://localhost:27200/admin/stats
170
+ \`\`\`
171
+
172
+ ### List Connections
173
+ \`\`\`bash
174
+ GET http://localhost:27200/admin/connections
175
+ \`\`\`
176
+
177
+ ## Docker
178
+
179
+ ```dockerfile
180
+ FROM node:20-alpine
181
+ WORKDIR /app
182
+ COPY package*.json ./
183
+ RUN npm install
184
+ COPY . .
185
+ EXPOSE 27100 27200
186
+ CMD ["node", "gateway.js"]
187
+ ```
73
188
 
74
- - `GET /health` - Health check
75
- - `GET /metrics` - Prometheus metrics
76
- - `GET /admin/connections` - List active connections
77
- - `GET /admin/stats` - Gateway statistics
189
+ ```bash
190
+ docker run -p 27100:27100 -p 27200:27200 \
191
+ -e REDIS_HOST=redis \
192
+ -e REDIS_PORT=6379 \
193
+ my-gateway
194
+ ```
78
195
 
79
- ## Architecture
196
+ ## Production Deployment
80
197
 
198
+ ### Multiple Instances
199
+
200
+ Run multiple gateway instances behind a load balancer:
201
+
202
+ ```bash
203
+ # Gateway 1
204
+ node gateway.js --id gateway-1 --port 27100
205
+
206
+ # Gateway 2
207
+ node gateway.js --id gateway-2 --port 27101
208
+
209
+ # Load balancer (nginx, haproxy, etc.)
81
210
  ```
82
- Client <--WebSocket--> Gateway <--Redis--> Worker
83
- ```
84
211
 
85
- The Gateway:
86
- 1. Accepts WebSocket connections from clients
87
- 2. Manages sessions and authentication
88
- 3. Routes messages to appropriate workers via Redis
89
- 4. Broadcasts responses back to clients
212
+ ### Monitoring
213
+
214
+ - Use the \`/metrics\` endpoint for Prometheus
215
+ - Monitor connection count, message rate, error rate
216
+ - Set up alerts for rate limit triggers
217
+
218
+ ### Best Practices
219
+
220
+ 1. **Set appropriate rate limits** based on your game's needs
221
+ 2. **Monitor memory usage** - adjust maxConnections if needed
222
+ 3. **Use Redis cluster** for high availability
223
+ 4. **Enable connection pooling** in your load balancer
224
+ 5. **Set up health checks** on \`/health\` endpoint
90
225
 
91
226
  ## License
92
227
 
@@ -1,3 +1,6 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { GatewayConfigOptions } from './config.service';
1
3
  export declare class ConfigModule {
4
+ static forRoot(config?: Partial<GatewayConfigOptions>): DynamicModule;
2
5
  }
3
6
  //# sourceMappingURL=config.module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.module.d.ts","sourceRoot":"","sources":["../../../src/config/config.module.ts"],"names":[],"mappings":"AAGA,qBAKa,YAAY;CAAG"}
1
+ {"version":3,"file":"config.module.d.ts","sourceRoot":"","sources":["../../../src/config/config.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAiB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,qBAEa,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,aAAa;CAYtE"}
@@ -5,18 +5,28 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var ConfigModule_1;
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.ConfigModule = void 0;
10
11
  const common_1 = require("@nestjs/common");
11
12
  const config_service_1 = require("./config.service");
12
- let ConfigModule = class ConfigModule {
13
+ let ConfigModule = ConfigModule_1 = class ConfigModule {
14
+ static forRoot(config) {
15
+ return {
16
+ module: ConfigModule_1,
17
+ providers: [
18
+ {
19
+ provide: config_service_1.ConfigService,
20
+ useValue: new config_service_1.ConfigService(config),
21
+ },
22
+ ],
23
+ exports: [config_service_1.ConfigService],
24
+ };
25
+ }
13
26
  };
14
27
  exports.ConfigModule = ConfigModule;
15
- exports.ConfigModule = ConfigModule = __decorate([
28
+ exports.ConfigModule = ConfigModule = ConfigModule_1 = __decorate([
16
29
  (0, common_1.Global)(),
17
- (0, common_1.Module)({
18
- providers: [config_service_1.ConfigService],
19
- exports: [config_service_1.ConfigService],
20
- })
30
+ (0, common_1.Module)({})
21
31
  ], ConfigModule);
22
32
  //# sourceMappingURL=config.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../../src/config/config.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,qDAAiD;AAO1C,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IALxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,8BAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,8BAAa,CAAC;KACzB,CAAC;GACW,YAAY,CAAG"}
1
+ {"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../../src/config/config.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+D;AAC/D,qDAAuE;AAIhE,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB,MAAM,CAAC,OAAO,CAAC,MAAsC;QACnD,OAAO;YACL,MAAM,EAAE,cAAY;YACpB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,8BAAa;oBACtB,QAAQ,EAAE,IAAI,8BAAa,CAAC,MAAM,CAAC;iBACpC;aACF;YACD,OAAO,EAAE,CAAC,8BAAa,CAAC;SACzB,CAAC;IACJ,CAAC;CACF,CAAA;AAbY,oCAAY;uBAAZ,YAAY;IAFxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,YAAY,CAaxB"}
@@ -1,3 +1,19 @@
1
+ export interface GatewayConfigOptions {
2
+ gatewayId: string;
3
+ port: number;
4
+ adminPort: number;
5
+ redisHost: string;
6
+ redisPort: number;
7
+ redisPassword?: string;
8
+ heartbeatInterval: number;
9
+ heartbeatTimeout: number;
10
+ maxConnections: number;
11
+ idleConnectionTimeout: number;
12
+ connectionRateLimit: number;
13
+ messageRateLimitPerConnection: number;
14
+ messageBurstLimit: number;
15
+ globalMessageRateLimit: number;
16
+ }
1
17
  export declare class ConfigService {
2
18
  readonly gatewayId: string;
3
19
  readonly port: number;
@@ -14,6 +30,6 @@ export declare class ConfigService {
14
30
  readonly messageRateLimitPerConnection: number;
15
31
  readonly messageBurstLimit: number;
16
32
  readonly globalMessageRateLimit: number;
17
- constructor();
33
+ constructor(config?: Partial<GatewayConfigOptions>);
18
34
  }
19
35
  //# sourceMappingURL=config.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/config/config.service.ts"],"names":[],"mappings":"AAGA,qBACa,aAAa;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,kCAAkC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAGvC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;;CAoBzC"}
1
+ {"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/config/config.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6BAA6B,EAAE,MAAM,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,qBACa,aAAa;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,kCAAkC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAGvC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;gBAE5B,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;CAmBnD"}
@@ -29,27 +29,28 @@ let ConfigService = class ConfigService {
29
29
  messageRateLimitPerConnection;
30
30
  messageBurstLimit;
31
31
  globalMessageRateLimit;
32
- constructor() {
33
- this.gatewayId = process.env.GW_GATEWAY_ID || `gateway-${(0, uuid_1.v4)().substring(0, 8)}`;
34
- this.port = parseInt(process.env.GW_GATEWAY_PORT || '27100', 10);
35
- this.adminPort = parseInt(process.env.GW_GATEWAY_ADMIN_PORT || '27200', 10);
36
- this.redisHost = process.env.GW_REDIS_HOST || 'localhost';
37
- this.redisPort = parseInt(process.env.GW_REDIS_PORT || '6379', 10);
38
- this.redisPassword = process.env.GW_REDIS_PASSWORD;
39
- this.heartbeatInterval = parseInt(process.env.GW_HEARTBEAT_INTERVAL || '30000', 10);
40
- this.heartbeatTimeout = parseInt(process.env.GW_HEARTBEAT_TIMEOUT || '90000', 10);
41
- this.maxConnections = parseInt(process.env.GW_MAX_CONNECTIONS || '10000', 10);
42
- this.idleConnectionTimeout = parseInt(process.env.GW_IDLE_CONNECTION_TIMEOUT || '60000', 10);
32
+ constructor(config) {
33
+ // 优先使用传入的配置,其次使用环境变量(仅支持 REDIS_* 用于基础设施)
34
+ this.gatewayId = config?.gatewayId || process.env.GATEWAY_ID || `gateway-${(0, uuid_1.v4)().substring(0, 8)}`;
35
+ this.port = config?.port || parseInt(process.env.GATEWAY_PORT || '27100', 10);
36
+ this.adminPort = config?.adminPort || parseInt(process.env.GATEWAY_ADMIN_PORT || '27200', 10);
37
+ this.redisHost = config?.redisHost || process.env.REDIS_HOST || 'localhost';
38
+ this.redisPort = config?.redisPort || parseInt(process.env.REDIS_PORT || '6379', 10);
39
+ this.redisPassword = config?.redisPassword || process.env.REDIS_PASSWORD;
40
+ this.heartbeatInterval = config?.heartbeatInterval || parseInt(process.env.HEARTBEAT_INTERVAL || '30000', 10);
41
+ this.heartbeatTimeout = config?.heartbeatTimeout || parseInt(process.env.HEARTBEAT_TIMEOUT || '90000', 10);
42
+ this.maxConnections = config?.maxConnections || parseInt(process.env.MAX_CONNECTIONS || '10000', 10);
43
+ this.idleConnectionTimeout = config?.idleConnectionTimeout || parseInt(process.env.IDLE_CONNECTION_TIMEOUT || '60000', 10);
43
44
  // 限流配置
44
- this.connectionRateLimit = parseInt(process.env.GW_CONNECTION_RATE_LIMIT || '100', 10);
45
- this.messageRateLimitPerConnection = parseInt(process.env.GW_MESSAGE_RATE_LIMIT || '50', 10);
46
- this.messageBurstLimit = parseInt(process.env.GW_MESSAGE_BURST_LIMIT || '100', 10);
47
- this.globalMessageRateLimit = parseInt(process.env.GW_GLOBAL_MESSAGE_RATE_LIMIT || '50000', 10);
45
+ this.connectionRateLimit = config?.connectionRateLimit || parseInt(process.env.CONNECTION_RATE_LIMIT || '100', 10);
46
+ this.messageRateLimitPerConnection = config?.messageRateLimitPerConnection || parseInt(process.env.MESSAGE_RATE_LIMIT || '50', 10);
47
+ this.messageBurstLimit = config?.messageBurstLimit || parseInt(process.env.MESSAGE_BURST_LIMIT || '100', 10);
48
+ this.globalMessageRateLimit = config?.globalMessageRateLimit || parseInt(process.env.GLOBAL_MESSAGE_RATE_LIMIT || '50000', 10);
48
49
  }
49
50
  };
50
51
  exports.ConfigService = ConfigService;
51
52
  exports.ConfigService = ConfigService = __decorate([
52
53
  (0, common_1.Injectable)(),
53
- __metadata("design:paramtypes", [])
54
+ __metadata("design:paramtypes", [Object])
54
55
  ], ConfigService);
55
56
  //# sourceMappingURL=config.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+BAAkC;AAG3B,IAAM,aAAa,GAAnB,MAAM,aAAa;IACf,SAAS,CAAS;IAClB,IAAI,CAAS;IACb,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,aAAa,CAAU;IACvB,iBAAiB,CAAS;IAC1B,gBAAgB,CAAS;IACzB,cAAc,CAAS;IAEhC,kCAAkC;IACzB,qBAAqB,CAAS;IAEvC,OAAO;IACE,mBAAmB,CAAS;IAC5B,6BAA6B,CAAS;IACtC,iBAAiB,CAAS;IAC1B,sBAAsB,CAAS;IAExC;QACE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,WAAW,IAAA,SAAI,GAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,WAAW,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAE7F,OAAO;QACP,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,6BAA6B,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;CACF,CAAA;AAtCY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;;GACA,aAAa,CAsCzB"}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/config.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+BAAkC;AAoB3B,IAAM,aAAa,GAAnB,MAAM,aAAa;IACf,SAAS,CAAS;IAClB,IAAI,CAAS;IACb,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,aAAa,CAAU;IACvB,iBAAiB,CAAS;IAC1B,gBAAgB,CAAS;IACzB,cAAc,CAAS;IAEhC,kCAAkC;IACzB,qBAAqB,CAAS;IAEvC,OAAO;IACE,mBAAmB,CAAS;IAC5B,6BAA6B,CAAS;IACtC,iBAAiB,CAAS;IAC1B,sBAAsB,CAAS;IAExC,YAAY,MAAsC;QAChD,yCAAyC;QACzC,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,IAAA,SAAI,GAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACpG,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9F,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,aAAa,GAAG,MAAM,EAAE,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAC9G,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAC3G,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,cAAc,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,qBAAqB,GAAG,MAAM,EAAE,qBAAqB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;QAE3H,OAAO;QACP,IAAI,CAAC,mBAAmB,GAAG,MAAM,EAAE,mBAAmB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QACnH,IAAI,CAAC,6BAA6B,GAAG,MAAM,EAAE,6BAA6B,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACnI,IAAI,CAAC,iBAAiB,GAAG,MAAM,EAAE,iBAAiB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7G,IAAI,CAAC,sBAAsB,GAAG,MAAM,EAAE,sBAAsB,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC;IACjI,CAAC;CACF,CAAA;AAvCY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;;GACA,aAAa,CAuCzB"}
@@ -22,6 +22,8 @@ export interface WebSocketConfig {
22
22
  heartbeatInterval?: number;
23
23
  /** Heartbeat timeout in milliseconds */
24
24
  heartbeatTimeout?: number;
25
+ /** Idle connection timeout (after auth, before joining room) in milliseconds */
26
+ idleConnectionTimeout?: number;
25
27
  }
26
28
  export interface RateLimitConfig {
27
29
  /** New connections per second */
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.config.d.ts","sourceRoot":"","sources":["../../../src/config/gateway.config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IAC5B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,WAAW,CAY9E;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAKvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,eAAe,CAK/D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAGtD,CAAC"}
1
+ {"version":3,"file":"gateway.config.d.ts","sourceRoot":"","sources":["../../../src/config/gateway.config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC;IAC5B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,WAAW,CAY9E;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAMvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,eAAe,CAK/D,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAGtD,CAAC"}
@@ -29,6 +29,7 @@ exports.DEFAULT_WS_CONFIG = {
29
29
  maxConnections: 10000,
30
30
  heartbeatInterval: 30000,
31
31
  heartbeatTimeout: 90000,
32
+ idleConnectionTimeout: 60000,
32
33
  };
33
34
  exports.DEFAULT_RATE_LIMIT_CONFIG = {
34
35
  connections: 100,
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.config.js","sourceRoot":"","sources":["../../../src/config/gateway.config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA8DH,oDAYC;AAfD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,MAA4B;IAC/D,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,2CAA2C;QAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;YACnC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACU,QAAA,iBAAiB,GAA8B;IAC1D,IAAI,EAAE,KAAK;IACX,cAAc,EAAE,KAAK;IACrB,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,KAAK;CACxB,CAAC;AAEW,QAAA,yBAAyB,GAA8B;IAClE,WAAW,EAAE,GAAG;IAChB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,KAAK;CACd,CAAC;AAEW,QAAA,oBAAoB,GAA0B;IACzD,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,IAAI;CACd,CAAC"}
1
+ {"version":3,"file":"gateway.config.js","sourceRoot":"","sources":["../../../src/config/gateway.config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgEH,oDAYC;AAfD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,MAA4B;IAC/D,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,2CAA2C;QAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;YACnC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACU,QAAA,iBAAiB,GAA8B;IAC1D,IAAI,EAAE,KAAK;IACX,cAAc,EAAE,KAAK;IACrB,iBAAiB,EAAE,KAAK;IACxB,gBAAgB,EAAE,KAAK;IACvB,qBAAqB,EAAE,KAAK;CAC7B,CAAC;AAEW,QAAA,yBAAyB,GAA8B;IAClE,WAAW,EAAE,GAAG;IAChB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,KAAK;CACd,CAAC;AAEW,QAAA,oBAAoB,GAA0B;IACzD,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,IAAI;CACd,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { DynamicModule } from '@nestjs/common';
2
+ import { GatewayConfigOptions } from './config/config.service';
2
3
  export interface GatewayModuleOptions {
3
4
  wsPort?: number;
5
+ config?: Partial<GatewayConfigOptions>;
4
6
  }
5
7
  export declare class GatewayModule {
6
8
  static forRoot(options?: GatewayModuleOptions): DynamicModule;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.module.d.ts","sourceRoot":"","sources":["../../src/gateway.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAWvD,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBACa,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa;CAiBlE"}
1
+ {"version":3,"file":"gateway.module.d.ts","sourceRoot":"","sources":["../../src/gateway.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAU/D,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACxC;AAED,qBACa,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa;CAiBlE"}
@@ -23,7 +23,7 @@ let GatewayModule = GatewayModule_1 = class GatewayModule {
23
23
  return {
24
24
  module: GatewayModule_1,
25
25
  imports: [
26
- config_module_1.ConfigModule,
26
+ config_module_1.ConfigModule.forRoot(options.config),
27
27
  redis_module_1.RedisModule,
28
28
  connection_module_1.ConnectionModule,
29
29
  session_module_1.SessionModule,
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.module.js","sourceRoot":"","sources":["../../src/gateway.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,0DAAsD;AACtD,uDAAmD;AACnD,sEAAkE;AAClE,6DAAyD;AACzD,8CAAiD;AACjD,uDAAmD;AACnD,qEAAgE;AAChE,6DAAyD;AACzD,qFAAgF;AAOzE,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,UAAgC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE;gBACP,4BAAY;gBACZ,0BAAW;gBACX,oCAAgB;gBAChB,8BAAa;gBACb,2BAAe,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjD,0BAAW;gBACX,mCAAe;gBACf,8BAAa;aACd;YACD,SAAS,EAAE,CAAC,mDAAuB,CAAC;YACpC,OAAO,EAAE,CAAC,mDAAuB,CAAC;SACnC,CAAC;IACJ,CAAC;CACF,CAAA;AAlBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,aAAa,CAkBzB"}
1
+ {"version":3,"file":"gateway.module.js","sourceRoot":"","sources":["../../src/gateway.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,0DAAsD;AAEtD,uDAAmD;AACnD,sEAAkE;AAClE,6DAAyD;AACzD,8CAAiD;AACjD,uDAAmD;AACnD,qEAAgE;AAChE,6DAAyD;AACzD,qFAAgF;AAQzE,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,UAAgC,EAAE;QAC/C,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE;gBACP,4BAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,0BAAW;gBACX,oCAAgB;gBAChB,8BAAa;gBACb,2BAAe,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjD,0BAAW;gBACX,mCAAe;gBACf,8BAAa;aACd;YACD,SAAS,EAAE,CAAC,mDAAuB,CAAC;YACpC,OAAO,EAAE,CAAC,mDAAuB,CAAC;SACnC,CAAC;IACJ,CAAC;CACF,CAAA;AAlBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,aAAa,CAkBzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,EACL,aAAa,EAKd,MAAM,yBAAyB,CAAC;AAGjC,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,8BAA8B;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAoDnF;AAGD,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,EACL,aAAa,EAKd,MAAM,yBAAyB,CAAC;AAGjC,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,8BAA8B;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CA6DnF;AAGD,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/src/index.js CHANGED
@@ -50,23 +50,28 @@ async function createGateway(config) {
50
50
  const wsConfig = { ...gateway_config_1.DEFAULT_WS_CONFIG, ...config.ws, ...(config.port ? { port: config.port } : {}) };
51
51
  const rateLimitConfig = { ...gateway_config_1.DEFAULT_RATE_LIMIT_CONFIG, ...config.rateLimit };
52
52
  const adminConfig = { ...gateway_config_1.DEFAULT_ADMIN_CONFIG, ...config.admin };
53
- // 设置环境变量给其他服务使用(使用GW_前缀)
54
- process.env.GW_GATEWAY_ID = gatewayId;
55
- process.env.GW_REDIS_HOST = redisConfig.host || 'localhost';
56
- process.env.GW_REDIS_PORT = String(redisConfig.port || 6379);
57
- if (redisConfig.password)
58
- process.env.GW_REDIS_PASSWORD = redisConfig.password;
59
- process.env.GW_GATEWAY_PORT = String(wsConfig.port);
60
- process.env.GW_GATEWAY_ADMIN_PORT = String(adminConfig.port);
61
- process.env.GW_MAX_CONNECTIONS = String(wsConfig.maxConnections);
62
- process.env.GW_HEARTBEAT_INTERVAL = String(wsConfig.heartbeatInterval);
63
- process.env.GW_HEARTBEAT_TIMEOUT = String(wsConfig.heartbeatTimeout);
64
- process.env.GW_CONNECTION_RATE_LIMIT = String(rateLimitConfig.connections);
65
- process.env.GW_MESSAGE_RATE_LIMIT = String(rateLimitConfig.messages);
66
- process.env.GW_MESSAGE_BURST_LIMIT = String(rateLimitConfig.burst);
67
- process.env.GW_GLOBAL_MESSAGE_RATE_LIMIT = String(rateLimitConfig.global);
53
+ // 构建 ConfigService 的配置对象
54
+ const gatewayConfigOptions = {
55
+ gatewayId,
56
+ port: wsConfig.port,
57
+ adminPort: adminConfig.port,
58
+ redisHost: redisConfig.host || 'localhost',
59
+ redisPort: redisConfig.port || 6379,
60
+ redisPassword: redisConfig.password,
61
+ heartbeatInterval: wsConfig.heartbeatInterval,
62
+ heartbeatTimeout: wsConfig.heartbeatTimeout,
63
+ maxConnections: wsConfig.maxConnections,
64
+ idleConnectionTimeout: wsConfig.idleConnectionTimeout || 60000,
65
+ connectionRateLimit: rateLimitConfig.connections,
66
+ messageRateLimitPerConnection: rateLimitConfig.messages,
67
+ messageBurstLimit: rateLimitConfig.burst,
68
+ globalMessageRateLimit: rateLimitConfig.global,
69
+ };
68
70
  // Create NestJS application with dynamic port configuration
69
- const app = await core_1.NestFactory.create(gateway_module_1.GatewayModule.forRoot({ wsPort: wsConfig.port }), {
71
+ const app = await core_1.NestFactory.create(gateway_module_1.GatewayModule.forRoot({
72
+ wsPort: wsConfig.port,
73
+ config: gatewayConfigOptions
74
+ }), {
70
75
  logger: ['error', 'warn', 'log'],
71
76
  });
72
77
  // 创建WebSocket适配器
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,11 @@ export declare class RedisService implements OnModuleInit, OnModuleDestroy {
60
60
  * 清理过期的Worker节点
61
61
  */
62
62
  private cleanupDeadWorkers;
63
+ /**
64
+ * 清理孤立的 gameType 集合成员
65
+ * 检查 gw:workers:<gameType> 中是否有已不存在的 worker
66
+ */
67
+ private cleanupOrphanedGameTypeEntries;
63
68
  /**
64
69
  * 移除Worker(同时清理gameType注册)
65
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.d.ts","sourceRoot":"","sources":["../../../src/redis/redis.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,qBACa,YAAa,YAAW,YAAY,EAAE,eAAe;IAiBpD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAhB1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAExD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAE3B,OAAO,CAAC,eAAe,CAAqD;IAG5E,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAC,CAAiB;IAGtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAEb,aAAa,EAAE,aAAa;IAanD,YAAY;IA+BZ,eAAe;YAgBP,mBAAmB;IASjC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;IAI7D;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvE;;OAEG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACxB,OAAO,CAAC,OAAO,CAAC;IAInB;;OAEG;YACW,eAAe;IAuB7B;;OAEG;YACW,iBAAiB;IAY/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;YACW,aAAa;IAY3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;YACW,mBAAmB;IAgCjC;;OAEG;YACW,aAAa;IAQ3B;;OAEG;YACW,kBAAkB;IA+BhC;;OAEG;YACW,YAAY;CAsB3B"}
1
+ {"version":3,"file":"redis.service.d.ts","sourceRoot":"","sources":["../../../src/redis/redis.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,qBACa,YAAa,YAAW,YAAY,EAAE,eAAe;IAiBpD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAhB1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAExD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAE3B,OAAO,CAAC,eAAe,CAAqD;IAG5E,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAC,CAAiB;IAGtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAEb,aAAa,EAAE,aAAa;IAanD,YAAY;IA+BZ,eAAe;YAgBP,mBAAmB;IASjC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;IAI7D;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvE;;OAEG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACxB,OAAO,CAAC,OAAO,CAAC;IAInB;;OAEG;YACW,eAAe;IAuB7B;;OAEG;YACW,iBAAiB;IAiB/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;YACW,aAAa;IAY3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;YACW,mBAAmB;IAgCjC;;OAEG;YACW,aAAa;IAQ3B;;OAEG;YACW,kBAAkB;IAkChC;;;OAGG;YACW,8BAA8B;IAkC5C;;OAEG;YACW,YAAY;CAsB3B"}
@@ -134,11 +134,15 @@ let RedisService = RedisService_1 = class RedisService {
134
134
  */
135
135
  async unregisterGateway() {
136
136
  const gatewayId = this.configService.gatewayId;
137
+ // 更新状态为离线,并设置较长的TTL(5分钟)以支持快速重启恢复
138
+ await this.client.hset(core_1.RedisKeys.gateway(gatewayId), 'status', 'offline');
139
+ await this.client.hset(core_1.RedisKeys.gateway(gatewayId), 'offlineAt', Date.now().toString());
140
+ await this.client.expire(core_1.RedisKeys.gateway(gatewayId), 300); // 5分钟TTL
137
141
  // 从Gateway列表中移除
138
142
  await this.client.srem(core_1.RedisKeys.gatewaysAll(), gatewayId);
139
- // 删除Gateway信息
140
- await this.client.del(core_1.RedisKeys.gateway(gatewayId));
141
- this.logger.log(`Gateway unregistered: ${gatewayId}`);
143
+ // 删除Gateway信息(改为设置TTL,不立即删除)
144
+ // await this.client.del(RedisKeys.gateway(gatewayId));
145
+ this.logger.log(`Gateway unregistered: ${gatewayId}, offline TTL: 300s`);
142
146
  }
143
147
  /**
144
148
  * 启动心跳定时器
@@ -248,6 +252,40 @@ let RedisService = RedisService_1 = class RedisService {
248
252
  if (cleaned > 0) {
249
253
  this.logger.log(`Cleaned up ${cleaned} dead worker(s)`);
250
254
  }
255
+ // 一致性检查:清理孤立的 gameType 集合成员
256
+ await this.cleanupOrphanedGameTypeEntries();
257
+ }
258
+ /**
259
+ * 清理孤立的 gameType 集合成员
260
+ * 检查 gw:workers:<gameType> 中是否有已不存在的 worker
261
+ */
262
+ async cleanupOrphanedGameTypeEntries() {
263
+ const gameTypePattern = 'gw:workers:*';
264
+ const keys = await this.client.keys(gameTypePattern);
265
+ let totalCleaned = 0;
266
+ for (const key of keys) {
267
+ // 获取集合中的所有 worker ID
268
+ const workerIds = await this.client.smembers(key);
269
+ for (const workerId of workerIds) {
270
+ // 检查 worker 是否还存在
271
+ const exists = await this.client.exists(core_1.RedisKeys.worker(workerId));
272
+ if (!exists) {
273
+ // Worker 不存在,从集合中移除
274
+ await this.client.srem(key, workerId);
275
+ totalCleaned++;
276
+ this.logger.debug(`Removed orphaned worker ${workerId} from ${key}`);
277
+ }
278
+ }
279
+ // 如果集合为空,删除集合
280
+ const count = await this.client.scard(key);
281
+ if (count === 0) {
282
+ await this.client.del(key);
283
+ this.logger.debug(`Deleted empty gameType set: ${key}`);
284
+ }
285
+ }
286
+ if (totalCleaned > 0) {
287
+ this.logger.log(`Cleaned up ${totalCleaned} orphaned gameType entries`);
288
+ }
251
289
  }
252
290
  /**
253
291
  * 移除Worker(同时清理gameType注册)
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../src/redis/redis.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../src/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAmF;AACnF,sDAA4B;AAC5B,6DAAyD;AACzD,wCAAyD;AAGlD,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAiBM;IAhBZ,MAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAC;IAE/C,MAAM,CAAQ;IACd,UAAU,CAAQ;IAEnB,eAAe,GAA2C,IAAI,GAAG,EAAE,CAAC;IAE5E,WAAW;IACH,cAAc,CAAkB;IAChC,YAAY,CAAkB;IAEtC,OAAO;IACU,kBAAkB,GAAG,IAAI,CAAC,CAAE,OAAO;IACnC,iBAAiB,GAAG,KAAK,CAAC,CAAE,QAAQ;IACpC,gBAAgB,GAAG,KAAK,CAAC,CAAG,UAAU;IAEvD,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QACvD,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;YAClC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;YAClC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa;YAC1C,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC;YAC5D,oBAAoB,EAAE,CAAC;SACxB,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAK,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAK,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC;QAE/E,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC,CAAC;QAEvF,SAAS;QACT,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,OAAO,aAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAChG,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,OAAO,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO;QACP,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,YAAY;QACZ,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,UAAU;QACV,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,UAAU;QACV,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,QAAQ;QACR,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;QAED,YAAY;QACZ,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,MAAM,cAAc,GAAG,oBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,gBAAgB,GAAG,oBAAa,CAAC,SAAS,EAAE,CAAC;QACnD,MAAM,kBAAkB,GAAG,oBAAa,CAAC,WAAW,EAAE,CAAC;QAEvD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;QACtF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,cAAc,KAAK,gBAAgB,KAAK,kBAAkB,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAe,EAAE,OAAkC;QAC3D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAwB;QACrD,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,kBAAkB,MAAM,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACrH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,MAAc,EACd,IAAc,EACd,IAAyB;QAEzB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAE/C,cAAc;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACnD,SAAS;YACT,MAAM,EAAE,QAAQ,EAAG,wBAAwB;YAC3C,eAAe,EAAE,CAAC;YAClB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;YACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YAC/B,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;SACxC,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3D,eAAe;QACf,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;QAE3D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,SAAS,kBAAkB,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAE/C,kCAAkC;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzF,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS;QAEtE,gBAAgB;QAChB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;QAE3D,6BAA6B;QAC7B,uDAAuD;QAEvD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,SAAS,qBAAqB,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACnD,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;SAC1B,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACjC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEvC,cAAc;QACd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAEvE,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YAE5E,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;gBAC/C,aAAa;gBACb,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACpC,OAAO,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC1D,IAAI,GAAG,GAAG,aAAa,GAAG,OAAO,EAAE,CAAC;gBAClC,WAAW;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,SAAS,qBAAqB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACnH,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,OAAO,kBAAkB,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,SAAiB;QAC3C,SAAS;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;QAE3D,cAAc;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEvC,aAAa;QACb,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QAErE,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEzE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC7C,aAAa;gBACb,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAClC,OAAO,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YACzD,IAAI,GAAG,GAAG,aAAa,GAAG,OAAO,EAAE,CAAC;gBAClC,WAAW;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,QAAQ,qBAAqB,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAAQ,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC3J,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,OAAO,iBAAiB,CAAC,CAAC;QAC1D,CAAC;QAED,4BAA4B;QAC5B,MAAM,IAAI,CAAC,8BAA8B,EAAE,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,8BAA8B;QAC1C,MAAM,eAAe,GAAG,cAAc,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAErD,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,qBAAqB;YACrB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,kBAAkB;gBAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEpE,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,oBAAoB;oBACpB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;oBACtC,YAAY,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,QAAQ,SAAS,GAAG,EAAE,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAED,cAAc;YACd,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,YAAY,4BAA4B,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,uBAAuB;QACvB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEzE,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACnD,mBAAmB;gBACnB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,SAAS;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAS,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAC;QAEzD,aAAa;QACb,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;CACF,CAAA;AA/VY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAkBiC,8BAAa;GAjB9C,YAAY,CA+VxB"}
@@ -10,6 +10,7 @@ export declare class MessageRouterService {
10
10
  private readonly sessionService;
11
11
  private readonly logger;
12
12
  private roomRoutes;
13
+ private reconnectAttempts;
13
14
  constructor(configService: ConfigService, redisService: RedisService, connectionService: ConnectionService, sessionService: SessionService);
14
15
  /**
15
16
  * 初始化路由更新监听
@@ -65,6 +66,16 @@ export declare class MessageRouterService {
65
66
  * - 对客户端和 Gateway 透明
66
67
  */
67
68
  private handleReconnect;
69
+ /**
70
+ * 重试重连房间
71
+ *
72
+ * @returns true 如果正在重试,false 如果达到最大次数
73
+ */
74
+ retryReconnectRoom(connectionId: string, userId: string, roomId: string, error: string): Promise<boolean>;
75
+ /**
76
+ * 清理重连尝试状态
77
+ */
78
+ clearReconnectAttempt(userId: string, roomId: string): void;
68
79
  /**
69
80
  * 创建房间
70
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"message-router.service.d.ts","sourceRoot":"","sources":["../../../src/ws/message-router.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,aAAa,EAMb,UAAU,EAGX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,qBACa,oBAAoB;IAO7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IATjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAGhE,OAAO,CAAC,UAAU,CAA6B;gBAG5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc;IAMjD;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAcrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyFlF;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;YACW,qBAAqB;IA2CnC;;OAEG;YACW,iBAAiB;IAiD/B;;OAEG;YACW,cAAc;IAO5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;YACW,eAAe;IAmH7B;;OAEG;YACW,gBAAgB;IAyD9B;;OAEG;YACW,cAAc;IAsC5B;;;;;OAKG;YACW,eAAe;IAyC7B;;;;;;;OAOG;YACW,eAAe;IA4B7B;;OAEG;YACW,gBAAgB;IAM9B;;OAEG;YACW,YAAY;IAkB1B;;OAEG;YACW,iBAAiB;IAK/B;;OAEG;YACW,oBAAoB;IA+BlC;;;;;;;;;;;;OAYG;YACW,kBAAkB;IA6GhC;;;;;;;;OAQG;YACW,kBAAkB;CAwBjC"}
1
+ {"version":3,"file":"message-router.service.d.ts","sourceRoot":"","sources":["../../../src/ws/message-router.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,aAAa,EAMb,UAAU,EAGX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAiB5D,qBACa,oBAAoB;IAU7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAZjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAGhE,OAAO,CAAC,UAAU,CAA6B;IAG/C,OAAO,CAAC,iBAAiB,CAAuC;gBAG7C,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc;IAMjD;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAcrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyFlF;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;YACW,qBAAqB;IA2CnC;;OAEG;YACW,iBAAiB;IAiD/B;;OAEG;YACW,cAAc;IAO5B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;YACW,eAAe;IAkI7B;;;;OAIG;IACG,kBAAkB,CACtB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAoDnB;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO3D;;OAEG;YACW,gBAAgB;IAyD9B;;OAEG;YACW,cAAc;IAsC5B;;;;;OAKG;YACW,eAAe;IAyC7B;;;;;;;OAOG;YACW,eAAe;IA4B7B;;OAEG;YACW,gBAAgB;IAM9B;;OAEG;YACW,YAAY;IAkB1B;;OAEG;YACW,iBAAiB;IAK/B;;OAEG;YACW,oBAAoB;IA+BlC;;;;;;;;;;;;OAYG;YACW,kBAAkB;IA6GhC;;;;;;;;OAQG;YACW,kBAAkB;CAwBjC"}
@@ -26,6 +26,8 @@ let MessageRouterService = MessageRouterService_1 = class MessageRouterService {
26
26
  logger = new common_1.Logger(MessageRouterService_1.name);
27
27
  // 房间路由缓存 (roomId -> workerId)
28
28
  roomRoutes = new Map();
29
+ // 重连尝试状态存储 (key: userId:roomId)
30
+ reconnectAttempts = new Map();
29
31
  constructor(configService, redisService, connectionService, sessionService) {
30
32
  this.configService = configService;
31
33
  this.redisService = redisService;
@@ -332,10 +334,24 @@ let MessageRouterService = MessageRouterService_1 = class MessageRouterService {
332
334
  }
333
335
  // 更新本地连接的房间信息
334
336
  this.connectionService.addRoom(connection.id, roomId);
337
+ // 记录重连尝试状态(首次尝试)
338
+ const attemptKey = `${userId}:${roomId}`;
339
+ const requestId = (0, uuid_1.v4)();
340
+ this.reconnectAttempts.set(attemptKey, {
341
+ connectionId: connection.id,
342
+ userId,
343
+ roomId,
344
+ gameType,
345
+ workerId,
346
+ attemptCount: 1,
347
+ maxAttempts: 3,
348
+ lastAttemptTime: Date.now(),
349
+ requestId,
350
+ });
335
351
  // 通知 Worker 更新房间成员的连接信息(轻量级通知,不发送状态)
336
352
  const updateMessage = {
337
353
  type: 'reconnect-room',
338
- requestId: (0, uuid_1.v4)(),
354
+ requestId,
339
355
  gatewayId: this.configService.gatewayId,
340
356
  connectionId: connection.id,
341
357
  userId,
@@ -358,6 +374,56 @@ let MessageRouterService = MessageRouterService_1 = class MessageRouterService {
358
374
  await this.sessionService.refreshSession(userId, true);
359
375
  this.logger.log(`User ${userId} reconnected successfully, rejoined ${roomsInfo.length} rooms`);
360
376
  }
377
+ /**
378
+ * 重试重连房间
379
+ *
380
+ * @returns true 如果正在重试,false 如果达到最大次数
381
+ */
382
+ async retryReconnectRoom(connectionId, userId, roomId, error) {
383
+ const attemptKey = `${userId}:${roomId}`;
384
+ const attempt = this.reconnectAttempts.get(attemptKey);
385
+ if (!attempt) {
386
+ this.logger.warn(`[retryReconnectRoom] No attempt record found for ${attemptKey}`);
387
+ return false;
388
+ }
389
+ if (attempt.attemptCount >= attempt.maxAttempts) {
390
+ this.logger.warn(`[retryReconnectRoom] Max attempts reached for roomId=${roomId}, userId=${userId}`);
391
+ this.reconnectAttempts.delete(attemptKey);
392
+ return false;
393
+ }
394
+ // 计算指数退避延迟:1s, 2s, 4s
395
+ const delay = Math.pow(2, attempt.attemptCount - 1) * 1000;
396
+ this.logger.log(`[retryReconnectRoom] Retrying reconnect: roomId=${roomId}, userId=${userId}, attempt=${attempt.attemptCount + 1}/${attempt.maxAttempts}, delay=${delay}ms, error=${error}`);
397
+ // 延迟后重试
398
+ setTimeout(async () => {
399
+ attempt.attemptCount++;
400
+ attempt.lastAttemptTime = Date.now();
401
+ // 重新发送 reconnect-room 消息
402
+ const updateMessage = {
403
+ type: 'reconnect-room',
404
+ requestId: attempt.requestId || (0, uuid_1.v4)(),
405
+ gatewayId: this.configService.gatewayId,
406
+ connectionId: attempt.connectionId,
407
+ userId: attempt.userId,
408
+ roomId: attempt.roomId,
409
+ payload: {
410
+ sendState: false,
411
+ },
412
+ timestamp: Date.now(),
413
+ };
414
+ await this.redisService.publish(core_1.RedisChannels.rpcWorker(attempt.workerId), updateMessage);
415
+ }, delay);
416
+ return true;
417
+ }
418
+ /**
419
+ * 清理重连尝试状态
420
+ */
421
+ clearReconnectAttempt(userId, roomId) {
422
+ const attemptKey = `${userId}:${roomId}`;
423
+ if (this.reconnectAttempts.delete(attemptKey)) {
424
+ this.logger.debug(`[clearReconnectAttempt] Cleared attempt for ${attemptKey}`);
425
+ }
426
+ }
361
427
  /**
362
428
  * 创建房间
363
429
  */
@@ -1 +1 @@
1
- {"version":3,"file":"message-router.service.js","sourceRoot":"","sources":["../../../src/ws/message-router.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-router.service.js","sourceRoot":"","sources":["../../../src/ws/message-router.service.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,15 @@ import { ConfigService } from '../config/config.service';
3
3
  import { RedisService } from '../redis/redis.service';
4
4
  import { ConnectionService } from '../connection/connection.service';
5
5
  import { SessionService } from '../session/session.service';
6
+ import { MessageRouterService } from './message-router.service';
6
7
  export declare class ResponseHandlerService implements OnModuleInit {
7
8
  private readonly configService;
8
9
  private readonly redisService;
9
10
  private readonly connectionService;
10
11
  private readonly sessionService;
12
+ private readonly messageRouterService;
11
13
  private readonly logger;
12
- constructor(configService: ConfigService, redisService: RedisService, connectionService: ConnectionService, sessionService: SessionService);
14
+ constructor(configService: ConfigService, redisService: RedisService, connectionService: ConnectionService, sessionService: SessionService, messageRouterService: MessageRouterService);
13
15
  onModuleInit(): void;
14
16
  /**
15
17
  * 处理Worker发来的直接消息
@@ -45,6 +47,14 @@ export declare class ResponseHandlerService implements OnModuleInit {
45
47
  * 多房间模式:从连接的房间集合中移除指定房间
46
48
  */
47
49
  private handleUserLeftRoom;
50
+ /**
51
+ * 处理重连房间响应
52
+ *
53
+ * Worker 验证重连请求后返回的结果:
54
+ * - 成功:重连已完成(无需额外操作)
55
+ * - 失败:房间不存在或用户不在房间中,尝试重试或清理会话
56
+ */
57
+ private handleReconnectRoomResponse;
48
58
  /**
49
59
  * 踢掉本地连接
50
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"response-handler.service.d.ts","sourceRoot":"","sources":["../../../src/ws/response-handler.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQlE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,qBACa,sBAAuB,YAAW,YAAY;IAIvD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IANjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;gBAG/C,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc;IAGjD,YAAY;IAcZ;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;YACW,sBAAsB;IAyCpC;;OAEG;YACW,kBAAkB;IA4EhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;OAMG;YACW,oBAAoB;IA2BlC;;;;OAIG;YACW,kBAAkB;IA6BhC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAO5B"}
1
+ {"version":3,"file":"response-handler.service.d.ts","sourceRoot":"","sources":["../../../src/ws/response-handler.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAQlE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBACa,sBAAuB,YAAW,YAAY;IAIvD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAPvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;gBAG/C,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,EAAE,oBAAoB;IAG7D,YAAY;IAcZ;;OAEG;YACW,mBAAmB;IA+BjC;;OAEG;YACW,sBAAsB;IAyCpC;;OAEG;YACW,kBAAkB;IA4EhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;OAMG;YACW,oBAAoB;IA2BlC;;;;OAIG;YACW,kBAAkB;IA6BhC;;;;;;OAMG;YACW,2BAA2B;IAwDzC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAO5B"}
@@ -17,17 +17,20 @@ const config_service_1 = require("../config/config.service");
17
17
  const redis_service_1 = require("../redis/redis.service");
18
18
  const connection_service_1 = require("../connection/connection.service");
19
19
  const session_service_1 = require("../session/session.service");
20
+ const message_router_service_1 = require("./message-router.service");
20
21
  let ResponseHandlerService = ResponseHandlerService_1 = class ResponseHandlerService {
21
22
  configService;
22
23
  redisService;
23
24
  connectionService;
24
25
  sessionService;
26
+ messageRouterService;
25
27
  logger = new common_1.Logger(ResponseHandlerService_1.name);
26
- constructor(configService, redisService, connectionService, sessionService) {
28
+ constructor(configService, redisService, connectionService, sessionService, messageRouterService) {
27
29
  this.configService = configService;
28
30
  this.redisService = redisService;
29
31
  this.connectionService = connectionService;
30
32
  this.sessionService = sessionService;
33
+ this.messageRouterService = messageRouterService;
31
34
  }
32
35
  onModuleInit() {
33
36
  // 注册消息处理器
@@ -43,7 +46,7 @@ let ResponseHandlerService = ResponseHandlerService_1 = class ResponseHandlerSer
43
46
  /**
44
47
  * 处理Worker发来的直接消息
45
48
  */
46
- handleDirectMessage(messageStr) {
49
+ async handleDirectMessage(messageStr) {
47
50
  try {
48
51
  const message = JSON.parse(messageStr);
49
52
  switch (message.type) {
@@ -62,6 +65,9 @@ let ResponseHandlerService = ResponseHandlerService_1 = class ResponseHandlerSer
62
65
  case 'user-left-room':
63
66
  this.handleUserLeftRoom(message);
64
67
  break;
68
+ case 'reconnect-room-response':
69
+ this.handleReconnectRoomResponse(message);
70
+ break;
65
71
  default:
66
72
  this.logger.warn(`Unknown message type: ${message.type}`);
67
73
  }
@@ -260,6 +266,52 @@ let ResponseHandlerService = ResponseHandlerService_1 = class ResponseHandlerSer
260
266
  }
261
267
  }
262
268
  }
269
+ /**
270
+ * 处理重连房间响应
271
+ *
272
+ * Worker 验证重连请求后返回的结果:
273
+ * - 成功:重连已完成(无需额外操作)
274
+ * - 失败:房间不存在或用户不在房间中,尝试重试或清理会话
275
+ */
276
+ async handleReconnectRoomResponse(message) {
277
+ const { connectionId, roomId, userId, success, error, requestId } = message;
278
+ if (!connectionId || !roomId || !userId) {
279
+ this.logger.warn('[handleReconnectRoomResponse] Missing required fields', { connectionId, roomId, userId });
280
+ return;
281
+ }
282
+ const connection = this.connectionService.getConnection(connectionId);
283
+ if (!connection) {
284
+ this.logger.warn(`[handleReconnectRoomResponse] Connection not found: ${connectionId}`);
285
+ return;
286
+ }
287
+ if (success) {
288
+ // 重连成功,清理重试状态
289
+ this.messageRouterService.clearReconnectAttempt(userId, roomId);
290
+ this.logger.log(`[handleReconnectRoomResponse] Reconnect successful: roomId=${roomId}, userId=${userId}, connectionId=${connectionId}`);
291
+ return;
292
+ }
293
+ // 重连失败:尝试重试
294
+ this.logger.warn(`[handleReconnectRoomResponse] Reconnect failed: roomId=${roomId}, userId=${userId}, error=${error}`);
295
+ const shouldRetry = await this.messageRouterService.retryReconnectRoom(connectionId, userId, roomId, error || 'UNKNOWN_ERROR');
296
+ if (shouldRetry) {
297
+ // 正在重试中,等待下次响应
298
+ this.logger.log(`[handleReconnectRoomResponse] Retrying reconnection for roomId=${roomId}, userId=${userId}`);
299
+ return;
300
+ }
301
+ // 达到最大重试次数,清理会话并通知客户端
302
+ this.logger.warn(`[handleReconnectRoomResponse] Max retries reached, cleaning up session for roomId=${roomId}, userId=${userId}`);
303
+ // 从连接的房间列表中移除
304
+ this.connectionService.removeRoom(connectionId, roomId);
305
+ // 从会话中移除房间
306
+ await this.sessionService.removeRoomFromSession(userId, roomId);
307
+ // 通知客户端重连失败
308
+ this.connectionService.sendByType(connectionId, core_1.MessageType.ROOM_CLOSING, {
309
+ roomId,
310
+ reason: 'reconnect-failed',
311
+ error: error || 'UNKNOWN_ERROR',
312
+ }, requestId);
313
+ this.logger.log(`[handleReconnectRoomResponse] Session cleaned for failed reconnection: roomId=${roomId}, userId=${userId}`);
314
+ }
263
315
  /**
264
316
  * 踢掉本地连接
265
317
  */
@@ -277,6 +329,7 @@ exports.ResponseHandlerService = ResponseHandlerService = ResponseHandlerService
277
329
  __metadata("design:paramtypes", [config_service_1.ConfigService,
278
330
  redis_service_1.RedisService,
279
331
  connection_service_1.ConnectionService,
280
- session_service_1.SessionService])
332
+ session_service_1.SessionService,
333
+ message_router_service_1.MessageRouterService])
281
334
  ], ResponseHandlerService);
282
335
  //# sourceMappingURL=response-handler.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response-handler.service.js","sourceRoot":"","sources":["../../../src/ws/response-handler.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAkE;AAClE,wCAMuB;AACvB,6DAAyD;AACzD,0DAAsD;AACtD,yEAAqE;AACrE,gEAA4D;AAGrD,IAAM,sBAAsB,8BAA5B,MAAM,sBAAsB;IAId;IACA;IACA;IACA;IANF,MAAM,GAAG,IAAI,eAAM,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAC;IAElE,YACmB,aAA4B,EAC5B,YAA0B,EAC1B,iBAAoC,EACpC,cAA8B;QAH9B,kBAAa,GAAb,aAAa,CAAe;QAC5B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAEJ,YAAY;QACV,UAAU;QACV,MAAM,cAAc,GAAG,oBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,gBAAgB,GAAG,oBAAa,CAAC,SAAS,EAAE,CAAC;QAEnD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;YACtD,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE;YACxD,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,UAAkB;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAE/D,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,KAAK,eAAe;oBAClB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACjC,MAAM;gBACR,KAAK,iBAAiB;oBACpB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,iBAAiB;oBACpB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,kBAAkB;oBACrB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,gBAAgB;oBACnB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACjC,MAAM;gBACR;oBACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAA0B,OAAe,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAAC,UAAkB;QACrD,IAAI,CAAC;YACH,MAAM,OAAO,GAAqB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;YAE5D,UAAU;YACV,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YAED,SAAS;YACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAEtF,KAAK,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,SAAS;gBACT,IAAI,aAAa,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAEtC,kBAAkB;oBAClB,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;wBACtD,mCAAmC;wBACnC,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;4BACrE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;4BACxB,CAAC,CAAC,OAAO,CAAC;wBAEZ,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAC,OAA+B;QAC9D,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAEzD,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,qCAAqC;YAC9D,gBAAgB;YAChB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YAC/D,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,kBAAW,CAAC,SAAS,EAAE;gBACrE,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,IAAI,aAAa;gBAC7B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;aACvB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,oBAAoB;QACpB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7E,MAAM,eAAe,GAAG,eAAe,EAAE,YAAY,CAAC;QACtD,MAAM,YAAY,GAAG,eAAe,EAAE,SAAS,CAAC;QAEhD,YAAY;QACZ,IAAI,eAAe,IAAI,YAAY,EAAE,CAAC;YACpC,kBAAkB;YAClB,IAAI,eAAe,KAAK,YAAY,IAAI,YAAY,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBACtF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,YAAY,aAAa,MAAM,+BAA+B,CAAC,CAAC;YACxH,CAAC;iBAAM,IAAI,YAAY,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBACzD,mBAAmB;gBACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,eAAe,cAAc,MAAM,EAAE,CAAC,CAAC;gBAClF,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,eAAe,OAAO,YAAY,cAAc,MAAM,EAAE,CAAC,CAAC;gBACxG,MAAM,WAAW,GAA2B;oBAC1C,IAAI,EAAE,iBAAiB;oBACvB,QAAQ,EAAE,SAAS;oBACnB,YAAY,EAAE,eAAe;oBAC7B,MAAM,EAAE,iBAAiB;oBACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;gBACF,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAa,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,eAAe,GAAG,eAAe,KAAK,YAAY,IAAI,YAAY,KAAK,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAE1G,0BAA0B;QAC1B,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEhE,kBAAkB;QAClB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,EAAE;YAC3E,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;YACvC,YAAY;YACZ,KAAK,EAAE,EAAE,EAAE,cAAc;SAC1B,CAAC,CAAC;QAEH,gBAAgB;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,kBAAW,CAAC,OAAO,EAAE;gBACnE,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,YAAY,EAAE,aAAa;gBAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,MAAM,iBAAiB,YAAY,mBAAmB,YAAY,EAAE,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAA+B;QAC1D,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAE9D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,YAAY,aAAa,OAAO,eAAe,SAAS,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9I,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,YAAY,EAAE,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,OAA+B;QAC1D,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEzC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,IAAI,QAAQ,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,oBAAoB,CAAC,OAA+B;QAChE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAElD,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;gBAC1D,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,YAAY,oCAAoC,MAAM,EAAE,CAAC,CAAC;gBACzF,OAAO;YACT,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAErD,+BAA+B;YAC/B,MAAM,QAAQ,GAAI,OAAe,EAAE,QAAQ,IAAI,SAAS,CAAC;YAEzD,qBAAqB;YACrB,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEhF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,MAAM,KAAK,QAAQ,kBAAkB,YAAY,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAAC,OAA+B;QAC9D,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEjD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACtE,IAAI,UAAU,EAAE,CAAC;gBACf,SAAS;gBACT,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;oBAExD,aAAa;oBACb,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;wBACtB,MAAM,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC7E,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,MAAM,iBAAiB,YAAY,aAAa,MAAM,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBAED,mBAAmB;gBACnB,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;oBAC/B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,kBAAW,CAAC,YAAY,EAAE;wBACxE,MAAM;wBACN,MAAM,EAAE,UAAU;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,YAAoB,EAAE,MAAc;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,kBAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAA;AA3RY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAKuB,8BAAa;QACd,4BAAY;QACP,sCAAiB;QACpB,gCAAc;GAPtC,sBAAsB,CA2RlC"}
1
+ {"version":3,"file":"response-handler.service.js","sourceRoot":"","sources":["../../../src/ws/response-handler.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,17 @@
1
1
  {
2
2
  "name": "@roomkit/gateway",
3
- "version": "1.2.0",
4
- "description": "WebSocket Gateway for Gateway-Worker Framework",
3
+ "version": "1.3.1",
4
+ "description": "High-performance WebSocket Gateway server for multiplayer games and real-time applications",
5
+ "keywords": [
6
+ "websocket",
7
+ "gateway",
8
+ "multiplayer",
9
+ "game-server",
10
+ "real-time",
11
+ "scalable",
12
+ "redis",
13
+ "roomkit"
14
+ ],
5
15
  "main": "dist/src/index.js",
6
16
  "types": "dist/src/index.d.ts",
7
17
  "exports": {
@@ -49,10 +59,14 @@
49
59
  "typescript": "^5.3.0"
50
60
  },
51
61
  "keywords": [
52
- "gateway",
53
62
  "websocket",
63
+ "gateway",
64
+ "multiplayer",
54
65
  "game-server",
55
- "multiplayer"
66
+ "real-time",
67
+ "scalable",
68
+ "redis",
69
+ "roomkit"
56
70
  ],
57
71
  "license": "MIT",
58
72
  "repository": {