@yyyu-star/arcade-kit 0.13.1 → 0.14.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # 更新日志
2
2
 
3
+ ## 0.14.0
4
+
5
+ 第三轮安全审计 kit 的三条(主线派)。
6
+ - **进房猜码限次**(中):`acceptJoin` 按人、按 IP 数每小时"码不存在"的次数(`KIT_QUOTA` 新字段 `joinMissesPerUser` 20、`joinMissesPerIp` 60)。超了以后进任何房间都回 1013,
7
+ 房间在不在都一样;只有这个房间的自己人(房主、坐着的、开打后绑过座位的)照常进,断线重连不受牵连。计数放在计量类按人、按 IP 取的小实例里(不挤全站那一个),每次各 1 行并记进当天的数。
8
+ 房间回"码不存在"时在 101 上带内部头 `x-kit-miss`,转给浏览器前去掉。
9
+ - **令牌桶按人记**(低):以前每条连接一个桶,断开重连就拿到一个满的;现在按 userId。
10
+ - **旁观名额**(低):按账号数;房主和开打后绑过座位(离座去看)的人不占名额、也不受限,几个陌生账号占满名额也挡不住他们。
11
+ - 评估(只评估,没做):"房主踢人"和"只许好友坐下"见 PR 说明;结论是暂不做,猜码限次加上开打后座位绑人已经够用,出现滥用再加。
12
+ - `worker.ts` 只按类型引用 `meter.ts`(门槛由计量的小实例自己按 `KIT_QUOTA` 算):游戏会在普通 Node 的测试里加载 `worker.ts`,`meter.ts` 依赖 `cloudflare:workers`;加了一条架构测试守住。
13
+ - 测试:`room.test` 第三轮审计 4 条;反证(不去内部头、不记数、超限不放自己人、不带超限头、令牌桶按连接、绑过座位的也占名额)都会让测试失败。
14
+
3
15
  ## 0.13.1
4
16
 
5
17
  稳定性小修(主线派,含第三轮审计 kit 的 setAlarm 一条)。
package/README.md CHANGED
@@ -452,9 +452,9 @@ export class CardRoom extends GameRoom<State, Action, View, Env> {
452
452
  - 客户端重发没确认的操作带原来的 `baseSeq`:牌局变过就回 `stale`,旧操作不会被套到新的一手上。有人进出不算牌局变了。
453
453
  - 重复的 moveId 每个座位记最近 8 个(0.11.1,和座位一起存在状态那一行里,不多写):连发 A、B 时 A 的 ack 丢了,补发 A 仍然只回 ack,不轮流的操作不会做第二遍。
454
454
  - **硬限制**(4.6):
455
- - 单条入站消息 4 KB(1009);每连接每秒 5 条、最多攒 10 条(1008);房间一生 3,000 条入站消息;寿命 3 小时;没人 10 分钟——到了就关房间:
455
+ - 单条入站消息 4 KB(1009);每人每秒 5 条、最多攒 10 条(1008;0.14.0 起按人记,断开重连、多开标签页都还是同一个桶);房间一生 3,000 条入站消息;寿命 3 小时;没人 10 分钟——到了就关房间:
456
456
  断开所有人(4000)、删闹钟、删存储;
457
- - 没入座的连接最多 4 条(4003);入座的人不占这个数,旁观的再多也挡不住座位的主人回来;
457
+ - 没入座的最多 4 个账号(4003);入座的人、房主、开打后绑过座位(离座去看)的人不占这个数,也不受它限,旁观的再多也挡不住座位的主人回来;
458
458
  - 每人一生最多 300 次"掉线后回来"(只数会写库的那种,4029)。按 userId 记,只管他自己,别人刷不光,离座再坐下也不清零;
459
459
  这些重连同时算进房间一生的 3,000 条入站额度,所以房间一生的写入总数有上限。没入座的人进出不写库,不受这个管;
460
460
  - 一个人最多用掉房间入站额度的 `maxInboundShare`(默认四成,1,200 条):超了只断开他(4030),以后也进不来,房间和别人照常;
@@ -489,6 +489,8 @@ export class CardRoom extends GameRoom<State, Action, View, Env> {
489
489
  | `stopWrites` | 85,000 | 在打的房间走到 `breakPoint`(这一副打完)时收场:把这一步发给大家,再以 4000 + 原因 `quota` 关房;等人的、已经打完的马上关 |
490
490
  | `emoteMs`(0.7.0,房间读) | 1000 | 快捷短语每个座位多少毫秒补 1 个令牌,0 不限速 |
491
491
  | `emoteBurst`(0.7.0,房间读) | 3 | 快捷短语每个座位最多攒几个令牌 |
492
+ | `joinMissesPerUser`(0.14.0) | 20 | 这个人这一小时进房时"码不存在"到了这么多次:进任何房间都回 1013(房间在不在都一样),只有这个房间的自己人(房主、坐着的、开打后绑过座位的)照常进 |
493
+ | `joinMissesPerIp`(0.14.0) | 60 | 同一个 IP 这一小时的"码不存在"次数,到了同上(一个 IP 后面可能是一家人、一个宿舍,放宽些) |
492
494
 
493
495
  - **改门槛**:在游戏的 `wrangler.jsonc` 里写 `"vars": { "KIT_QUOTA": { "busyWrites": 50000 } }`(对象或 JSON 字符串都行),只写要改的字段,部署后生效;
494
496
  不认识的字段、不是非负整数的值记日志后忽略,用默认值。门槛按每个游戏各算各的,有几个联机游戏就要分一分(见下面"多个游戏怎么分额度")。
@@ -498,6 +500,7 @@ export class CardRoom extends GameRoom<State, Action, View, Env> {
498
500
  计量每报一次写 1 行,200 行一报摊下来多花 0.5%;开房(这个人一行、当天一行)、还名额(同样两行)另算,也都记进当天的数。
499
501
  没报的数随房间那一行一起存,被驱逐后接着数;被驱逐前刚报过、还没存下去的那一批会再报一次,偏保守。房间跨 UTC 0 点报上来的记在新的一天。
500
502
  - **计量连不上**:不开新房(503 `unavailable`)、不进新人(1013,客户端过会儿自己重试);在打的照常,报不上的攒着,60 秒后再试。
503
+ - **进房猜码**(0.14.0,第三轮审计):房间码只有 6 位,不限的话能一个个试出谁开着房、进去旁观或坐空位。`acceptJoin` 按人、按 IP 数"码不存在"(计量类的小实例 `kit-miss:u:<userId>` / `kit-miss:ip:<地址>`,每次各写 1 行、再报进当天的数;没绑 `METER` 不管,没有 `cf-connecting-ip` 只按人)。超了门槛不直接拒,而是带一个内部头进房,由房间判断是不是自己人:自己人照常进,别人一律 1013,这样超限的人说不出房间在不在,在打的人断线重连也不受牵连。计量连不上时同样处理。每次进房多问一次小实例(只读)。
501
504
  - **房间怎么知道门槛**:每次报数、还名额时计量顺便回现在的门槛;有新人来进房时房间也会问(记 30 秒,只读不写)。所以 stop 以后在打的房间最晚再写一批(≤ 200 行)加上这一副剩下的才收场,
502
505
  按同时最多二三十个房间算,8.5 万离 10 万还有余量。
503
506
  - 名额只按游戏算:同一个人在两个游戏里可以各开一个房间。
@@ -28,6 +28,12 @@ export declare function newRoomCode(): string;
28
28
  export declare function roomStub(ns: DurableObjectNamespace, code: string): DurableObjectStub;
29
29
  /** 计量的名字:每个游戏 Worker 只有这一个实例(meter.ts)。 */
30
30
  export declare const METER_NAME = "kit-meter";
31
+ /** 进房猜码的计数(0.14.0):按人(u:<userId>)、按 IP(ip:<地址>)各一个小实例,和全站的计量同一个类、不同名字,不挤一个热点 */
32
+ export declare function missStub(ns: DurableObjectNamespace, key: string): DurableObjectStub;
33
+ /** 房间告诉 acceptJoin"这个码没有房间"的内部头(只在房间回给 Worker 的 101 上,转给浏览器前去掉) */
34
+ export declare const MISS_HEADER = "x-kit-miss";
35
+ /** acceptJoin 告诉房间"这个人猜码超了门槛"的内部头:房间只放自己人(房主、入座的、绑过座位的)进来,别人一律 1013 */
36
+ export declare const LIMITED_HEADER = "x-kit-limited";
31
37
  /** 计量的 stub:和房间一样放在亚太,开房、报数少绕路。 */
32
38
  export declare function meterStub(ns: DurableObjectNamespace): DurableObjectStub;
33
39
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,sCAAsC;AACtC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAM/D;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,wBAAwB,CAAC;AAE9C,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAEnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAQjE;AAED,yBAAyB;AACzB,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,kCAAkC;AAClC,wBAAgB,QAAQ,CAAC,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAEpF;AAED,2CAA2C;AAC3C,eAAO,MAAM,UAAU,cAAc,CAAC;AAEtC,mCAAmC;AACnC,wBAAgB,SAAS,CAAC,EAAE,EAAE,sBAAsB,GAAG,iBAAiB,CAEvE"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,sCAAsC;AACtC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAM/D;AAED,+CAA+C;AAC/C,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,wBAAwB,CAAC;AAE9C,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAEnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAQjE;AAED,yBAAyB;AACzB,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,kCAAkC;AAClC,wBAAgB,QAAQ,CAAC,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAEpF;AAED,2CAA2C;AAC3C,eAAO,MAAM,UAAU,cAAc,CAAC;AAEtC,gFAAgF;AAChF,wBAAgB,QAAQ,CAAC,EAAE,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAEnF;AAED,mEAAmE;AACnE,eAAO,MAAM,WAAW,eAAe,CAAC;AAExC,uEAAuE;AACvE,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAE9C,mCAAmC;AACnC,wBAAgB,SAAS,CAAC,EAAE,EAAE,sBAAsB,GAAG,iBAAiB,CAEvE"}
package/dist/internal.js CHANGED
@@ -46,6 +46,14 @@ export function roomStub(ns, code) {
46
46
  }
47
47
  /** 计量的名字:每个游戏 Worker 只有这一个实例(meter.ts)。 */
48
48
  export const METER_NAME = 'kit-meter';
49
+ /** 进房猜码的计数(0.14.0):按人(u:<userId>)、按 IP(ip:<地址>)各一个小实例,和全站的计量同一个类、不同名字,不挤一个热点 */
50
+ export function missStub(ns, key) {
51
+ return ns.get(ns.idFromName(`kit-miss:${key}`), { locationHint: 'apac' });
52
+ }
53
+ /** 房间告诉 acceptJoin"这个码没有房间"的内部头(只在房间回给 Worker 的 101 上,转给浏览器前去掉) */
54
+ export const MISS_HEADER = 'x-kit-miss';
55
+ /** acceptJoin 告诉房间"这个人猜码超了门槛"的内部头:房间只放自己人(房主、入座的、绑过座位的)进来,别人一律 1013 */
56
+ export const LIMITED_HEADER = 'x-kit-limited';
49
57
  /** 计量的 stub:和房间一样放在亚太,开房、报数少绕路。 */
50
58
  export function meterStub(ns) {
51
59
  return ns.get(ns.idFromName(METER_NAME), { locationHint: 'apac' });
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,sCAAsC;AACtC,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAE9C,qEAAqE;AACrE,MAAM,UAAU,cAAc,CAAC,EAAY;IACzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAkB;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAsB,CAAC;QACnE,OAAO,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5H,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7F,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,QAAQ,CAAC,EAA0B,EAAE,IAAY;IAC/D,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC,mCAAmC;AACnC,MAAM,UAAU,SAAS,CAAC,EAA0B;IAClD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,sCAAsC;AACtC,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAE9C,qEAAqE;AACrE,MAAM,UAAU,cAAc,CAAC,EAAY;IACzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAkB;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAsB,CAAC;QACnE,OAAO,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5H,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,WAAW;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC7F,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,QAAQ,CAAC,EAA0B,EAAE,IAAY;IAC/D,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC,gFAAgF;AAChF,MAAM,UAAU,QAAQ,CAAC,EAA0B,EAAE,GAAW;IAC9D,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAExC,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAE9C,mCAAmC;AACnC,MAAM,UAAU,SAAS,CAAC,EAA0B;IAClD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;AACrE,CAAC"}
package/dist/meter.d.ts CHANGED
@@ -29,6 +29,12 @@ export interface QuotaLimits {
29
29
  busyWrites: number;
30
30
  /** 当天写入到这么多行:在打的房间这一段打完收场 */
31
31
  stopWrites: number;
32
+ /**
33
+ * 进房猜码(0.14.0,第三轮审计):每个人每小时最多几次"房间码不存在"、每个 IP 每小时最多几次。超了这一小时里进任何房间都回 1013,
34
+ * 存在的房间也一样(不然 1013 和 welcome 的差别照样说出房间在不在)。房间码只有 6 位,不限就能一个个试出谁开着房
35
+ */
36
+ joinMissesPerUser: number;
37
+ joinMissesPerIp: number;
32
38
  }
33
39
  export declare const DEFAULT_QUOTA: QuotaLimits;
34
40
  /** KIT_QUOTA 里由房间读的字段(0.7.0):emoteMs 每多少毫秒补一个短语令牌(0 不限速),emoteBurst 最多攒几个 */
@@ -75,6 +81,15 @@ export declare class RoomMeter extends DurableObject<MeterEnv> {
75
81
  kitReport(writes: number): Promise<MeterLevel>;
76
82
  /** 只读:现在的门槛(房间放新人进来之前问,不写库)。 */
77
83
  kitLevel(): Promise<MeterLevel>;
84
+ /**
85
+ * 进房猜码(0.14.0):这两个方法用在 missStub 按人、按 IP 取的小实例上(不是全站那一个),不碰 SQL 表,只存一个 { 第几个小时, 几次 }。
86
+ * kitMissBlocked 只读,进房前问(门槛在这里按 KIT_QUOTA 算,worker.ts 不用在运行时引用本文件:它要能在普通 Node 里加载);
87
+ * kitMiss 记一次(1 行),只有真的进了一个不存在的房间才调,超了门槛的人进不到这一步,所以一小时最多写门槛那么多行
88
+ */
89
+ kitMissBlocked(kind: 'user' | 'ip'): Promise<boolean>;
90
+ /** 只读:这一小时记了几次(给测试看) */
91
+ kitMisses(): Promise<number>;
92
+ kitMiss(): Promise<number>;
78
93
  /** 只读:当天的数,给运维和测试看。 */
79
94
  kitUsage(): Promise<Usage>;
80
95
  private ensure;
@@ -1 +1 @@
1
- {"version":3,"file":"meter.d.ts","sourceRoot":"","sources":["../src/meter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,WAM3B,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA8B,CAAC;AAE9E,wCAAwC;AACxC,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,2FAA2F;IAC3F,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM,CAAC;CACzF;AAED,4CAA4C;AAC5C,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAA;CAAE,CAAC;AAEnI,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB;AAaD,qBAAa,SAAU,SAAQ,aAAa,CAAC,QAAQ,CAAC;IACpD,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAA4B;IAE/C,sDAAsD;IAChD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAc9E;IAED;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAelG;IAED,8BAA8B;IACxB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAKnD;IAED,gCAAgC;IAC1B,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,CAEpC;IAED,uBAAuB;IACjB,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,CAI/B;IAID,OAAO,CAAC,MAAM;IAUd,kDAAkD;IAClD,OAAO,CAAC,GAAG;IAOX,OAAO,CAAC,OAAO;IASf,gDAAgD;IAChD,OAAO,CAAC,IAAI;IAaZ,mDAAmD;IACnD,OAAO,CAAC,QAAQ;IAMhB,kDAAkD;IAClD,OAAO,CAAC,MAAM;CAKf;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGpF;AAED,6DAA6D;AAC7D,wBAAsB,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAGnE;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CAyBpD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,UAAU,CAIpE"}
1
+ {"version":3,"file":"meter.d.ts","sourceRoot":"","sources":["../src/meter.ts"],"names":[],"mappings":"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"}
package/dist/meter.js CHANGED
@@ -25,6 +25,9 @@ export const DEFAULT_QUOTA = {
25
25
  dailyRooms: 300,
26
26
  busyWrites: 60_000,
27
27
  stopWrites: 85_000,
28
+ // 正常人输错码一小时也就几次;一个 IP 后面可能是一家人、一个宿舍,放宽一些
29
+ joinMissesPerUser: 20,
30
+ joinMissesPerIp: 60,
28
31
  };
29
32
  /** KIT_QUOTA 里由房间读的字段(0.7.0):emoteMs 每多少毫秒补一个短语令牌(0 不限速),emoteBurst 最多攒几个 */
30
33
  export const ROOM_QUOTA_FIELDS = ['emoteMs', 'emoteBurst'];
@@ -84,6 +87,27 @@ export class RoomMeter extends DurableObject {
84
87
  async kitLevel() {
85
88
  return levelOf(this.day(Date.now()).writes, this.limits());
86
89
  }
90
+ /**
91
+ * 进房猜码(0.14.0):这两个方法用在 missStub 按人、按 IP 取的小实例上(不是全站那一个),不碰 SQL 表,只存一个 { 第几个小时, 几次 }。
92
+ * kitMissBlocked 只读,进房前问(门槛在这里按 KIT_QUOTA 算,worker.ts 不用在运行时引用本文件:它要能在普通 Node 里加载);
93
+ * kitMiss 记一次(1 行),只有真的进了一个不存在的房间才调,超了门槛的人进不到这一步,所以一小时最多写门槛那么多行
94
+ */
95
+ async kitMissBlocked(kind) {
96
+ const lim = this.limits();
97
+ return (await this.kitMisses()) >= (kind === 'user' ? lim.joinMissesPerUser : lim.joinMissesPerIp);
98
+ }
99
+ /** 只读:这一小时记了几次(给测试看) */
100
+ async kitMisses() {
101
+ const r = await this.ctx.storage.get('miss');
102
+ return r && r.h === hourOf(Date.now()) ? r.n : 0;
103
+ }
104
+ async kitMiss() {
105
+ const h = hourOf(Date.now());
106
+ const r = await this.ctx.storage.get('miss');
107
+ const n = (r && r.h === h ? r.n : 0) + 1;
108
+ await this.ctx.storage.put('miss', { h, n });
109
+ return n;
110
+ }
87
111
  /** 只读:当天的数,给运维和测试看。 */
88
112
  async kitUsage() {
89
113
  const day = this.day(Date.now());
@@ -197,6 +221,9 @@ export function levelOf(writes, lim) {
197
221
  return 'busy';
198
222
  return 'ok';
199
223
  }
224
+ function hourOf(now) {
225
+ return Math.floor(now / 3_600_000);
226
+ }
200
227
  function utcDay(now) {
201
228
  return new Date(now).toISOString().slice(0, 10);
202
229
  }
package/dist/meter.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"meter.js","sourceRoot":"","sources":["../src/meter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meter.js","sourceRoot":"","sources":["../src/meter.ts"],"names":[],"mappings":"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"}
package/dist/room.d.ts CHANGED
@@ -41,7 +41,9 @@ export interface RoomLimits {
41
41
  * 这些重连同时算进 maxInbound,房间一生的写入总数有上限
42
42
  */
43
43
  maxJoins: number;
44
- /** 没入座的连接最多几条(来看的、还没选座位的),超了 4003。入座的人不占这个数,掉线回来总能进 */
44
+ /**
45
+ * 没入座的人最多几个(来看的、还没选座位的),超了 4003。按账号算(0.14.0,以前按连接);入座的人、房主、开打后绑过座位的人不占这个数,掉线回来总能进
46
+ */
45
47
  extraConnections: number;
46
48
  /** 房间最长寿命 */
47
49
  maxLifeMs: number;
@@ -134,6 +136,7 @@ export declare abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E ex
134
136
  private alarmToSet;
135
137
  private pendingInbound;
136
138
  private readonly pendingBy;
139
+ /** 入站消息的令牌桶,按 userId 记(0.14.0;以前按连接,断开重连就换一个满的桶,第三轮审计) */
137
140
  private readonly buckets;
138
141
  /** 每个座位快捷短语的令牌桶(内存里;被驱逐就重置成满的,驱逐前至少空闲了一阵,本来也该满了) */
139
142
  private readonly emoteBuckets;
@@ -358,6 +361,10 @@ export declare abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E ex
358
361
  private countOf;
359
362
  private seatOf;
360
363
  private roomInfo;
364
+ /** 这个房间的自己人:房主、坐着的、开打后绑过座位的。猜码超限时只放他们进(0.14.0) */
365
+ private insider;
366
+ /** 房主,或者开打后绑过座位的人:旁观名额不算他们(0.14.0) */
367
+ private ownsRoom;
361
368
  /** 这个人开打后绑定的座位(离座了也还是它);还没开打、没坐过为 null。 */
362
369
  private boundOf;
363
370
  private welcome;
@@ -366,7 +373,10 @@ export declare abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E ex
366
373
  private broadcast;
367
374
  private send;
368
375
  private reject;
369
- /** 每个连接一个令牌桶(内存里;被驱逐后重置成满的,驱逐前至少空闲了一阵,本来也该满了)。 */
376
+ /**
377
+ * 每个人一个令牌桶(内存里;被驱逐后重置成满的,驱逐前至少空闲了一阵,本来也该满了)。
378
+ * 按人不按连接(0.14.0):断开重连、多开几个标签页都还是同一个桶,刷不出新的 burst
379
+ */
370
380
  private takeToken;
371
381
  }
372
382
  /** 快捷短语的节奏(0.7.0):每 ms 毫秒补 1 个令牌、最多攒 burst 个 */
@@ -1 +1 @@
1
- {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
package/dist/room.js CHANGED
@@ -17,7 +17,7 @@
17
17
  * 计量说今天快满了(busy)就不进新人;说满了(stop)就在这一段打完(RoomGame.breakPoint)时收场。
18
18
  */
19
19
  import { DurableObject } from 'cloudflare:workers';
20
- import { KIT_HOST, meterStub, parseIdentity } from './internal.js';
20
+ import { KIT_HOST, LIMITED_HEADER, MISS_HEADER, meterStub, parseIdentity } from './internal.js';
21
21
  import { ENTROPY_WORDS } from './rng.js';
22
22
  import { CLOSE, CLOSE_REASON, PING, PONG, PROTOCOL_VERSION, ROOM_CODE_RE, } from './protocol.js';
23
23
  import { reportTogether, togetherOp } from './together.js';
@@ -143,7 +143,8 @@ export class GameRoom extends DurableObject {
143
143
  alarmToSet = null;
144
144
  pendingInbound = 0;
145
145
  pendingBy = new Map();
146
- buckets = new WeakMap();
146
+ /** 入站消息的令牌桶,按 userId 记(0.14.0;以前按连接,断开重连就换一个满的桶,第三轮审计) */
147
+ buckets = new Map();
147
148
  /** 每个座位快捷短语的令牌桶(内存里;被驱逐就重置成满的,驱逐前至少空闲了一阵,本来也该满了) */
148
149
  emoteBuckets = new Map();
149
150
  emoteRateCache = null;
@@ -223,6 +224,9 @@ export class GameRoom extends DurableObject {
223
224
  const me = parseIdentity(request.headers.get('x-kit-user'));
224
225
  if (!me)
225
226
  return new Response('no identity', { status: 401 });
227
+ // 猜码超了门槛(0.14.0):自己人照常进(断线重连不受牵连),别人不管房间在不在都回 1013,说不出房间在不在
228
+ if (request.headers.has(LIMITED_HEADER) && !this.insider(me.userId))
229
+ return this.refuse(CLOSE.tryLater);
226
230
  const gate = await this.newcomerGate(me.userId);
227
231
  if (gate !== null)
228
232
  return this.refuse(gate);
@@ -472,7 +476,8 @@ export class GameRoom extends DurableObject {
472
476
  const st = this.load();
473
477
  if (!st) {
474
478
  server.close(CLOSE.noRoom, 'no room');
475
- return done();
479
+ // 告诉 acceptJoin 这是一次"码不存在"(0.14.0,进房猜码按人、按 IP 计数);它转给浏览器前去掉这个头
480
+ return new Response(null, { status: 101, webSocket: client, headers: { [MISS_HEADER]: '1' } });
476
481
  }
477
482
  if (st.ending) {
478
483
  server.close(CLOSE.roomClosed, st.ending.reason);
@@ -486,10 +491,12 @@ export class GameRoom extends DurableObject {
486
491
  const seat = this.seatOf(me.userId);
487
492
  const others = this.sockets().filter((o) => o !== server && attachmentOf(o));
488
493
  const mine = others.filter((o) => attachmentOf(o).userId === me.userId);
489
- if (seat === null) {
490
- // 没入座的连接单独封顶;入座的人不占这个数,旁观的再多也挡不住座位的主人回来
491
- const watching = others.filter((o) => o !== server && this.seatOf(attachmentOf(o).userId) === null && !mine.includes(o));
492
- if (watching.length >= this.limits.extraConnections) {
494
+ if (seat === null && !this.ownsRoom(st, me.userId)) {
495
+ // 没入座的单独封顶;入座的人不占这个数,旁观的再多也挡不住座位的主人回来。
496
+ // 0.14.0(第三轮审计):按账号数不按连接数(一个人开几个标签页只占一个),房主和开打后绑过座位的人(离座去看的)不占也不受这个限,
497
+ // 不然几个陌生账号就能占满名额,让房主的朋友连进来选座都进不来
498
+ const watchers = new Set(others.map((o) => attachmentOf(o).userId).filter((u) => u !== me.userId && this.seatOf(u) === null && !this.ownsRoom(st, u)));
499
+ if (watchers.size >= this.limits.extraConnections) {
493
500
  server.close(CLOSE.full, 'room full');
494
501
  return done();
495
502
  }
@@ -552,7 +559,7 @@ export class GameRoom extends DurableObject {
552
559
  const bytes = typeof message === 'string' ? new TextEncoder().encode(message).byteLength : message.byteLength;
553
560
  if (bytes > this.limits.maxMessageBytes)
554
561
  return void ws.close(CLOSE.tooBig, 'message too big');
555
- if (!this.takeToken(ws))
562
+ if (!this.takeToken(me.userId))
556
563
  return void ws.close(CLOSE.policy, 'too fast');
557
564
  const counted = this.countInbound(st, me.userId);
558
565
  if (counted === 'user')
@@ -1502,6 +1509,15 @@ export class GameRoom extends DurableObject {
1502
1509
  ...(until !== null ? { pause: { until } } : {}),
1503
1510
  };
1504
1511
  }
1512
+ /** 这个房间的自己人:房主、坐着的、开打后绑过座位的。猜码超限时只放他们进(0.14.0) */
1513
+ insider(userId) {
1514
+ const st = this.load();
1515
+ return !!st && (st.host === userId || this.seatOf(userId) !== null || this.boundOf(userId) !== null);
1516
+ }
1517
+ /** 房主,或者开打后绑过座位的人:旁观名额不算他们(0.14.0) */
1518
+ ownsRoom(st, userId) {
1519
+ return st.host === userId || st.owners.includes(userId);
1520
+ }
1505
1521
  /** 这个人开打后绑定的座位(离座了也还是它);还没开打、没坐过为 null。 */
1506
1522
  boundOf(userId) {
1507
1523
  const i = this.st.owners.indexOf(userId);
@@ -1560,16 +1576,19 @@ export class GameRoom extends DurableObject {
1560
1576
  reject(ws, code, moveId) {
1561
1577
  this.send(ws, { t: 'error', code, ...(moveId ? { moveId } : {}) });
1562
1578
  }
1563
- /** 每个连接一个令牌桶(内存里;被驱逐后重置成满的,驱逐前至少空闲了一阵,本来也该满了)。 */
1564
- takeToken(ws) {
1579
+ /**
1580
+ * 每个人一个令牌桶(内存里;被驱逐后重置成满的,驱逐前至少空闲了一阵,本来也该满了)。
1581
+ * 按人不按连接(0.14.0):断开重连、多开几个标签页都还是同一个桶,刷不出新的 burst
1582
+ */
1583
+ takeToken(userId) {
1565
1584
  const now = Date.now();
1566
- const b = this.buckets.get(ws) ?? { tokens: this.limits.rateBurst, at: now };
1585
+ const b = this.buckets.get(userId) ?? { tokens: this.limits.rateBurst, at: now };
1567
1586
  b.tokens = Math.min(this.limits.rateBurst, b.tokens + ((now - b.at) / 1000) * this.limits.ratePerSec);
1568
1587
  b.at = now;
1569
1588
  if (b.tokens < 1)
1570
1589
  return false;
1571
1590
  b.tokens -= 1;
1572
- this.buckets.set(ws, b);
1591
+ this.buckets.set(userId, b);
1573
1592
  return true;
1574
1593
  }
1575
1594
  }
package/dist/room.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAG3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C;;;GAGG;AACH,MAAM,WAAW,MAAO,SAAQ,QAAQ;IACtC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAYD,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAU7G;AAgCD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAYvH;AASD;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,oCAAoC;AACpC,eAAO,MAAM,SAAS,2nBAKwE,CAAC;AAE/F;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiB9G;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAM9F;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAKjF;AAED,gCAAgC;AAChC,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,SAAS,MAAM,EAAO,GAAG,QAAQ,CAE/F;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASnF"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,YAAY,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAI3E,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAGtD;;;GAGG;AACH,MAAM,WAAW,MAAO,SAAQ,QAAQ;IACtC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAYD,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAU7G;AAgCD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CA0BvH;AAgCD;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,oCAAoC;AACpC,eAAO,MAAM,SAAS,2nBAKwE,CAAC;AAE/F;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiB9G;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAM9F;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAKjF;AAED,gCAAgC;AAChC,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,SAAS,MAAM,EAAO,GAAG,QAAQ,CAE/F;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASnF"}
package/dist/worker.js CHANGED
@@ -13,7 +13,7 @@
13
13
  import { identify, sameOrigin } from './auth.js';
14
14
  import { isStandalone } from './guest.js';
15
15
  import { CLOSE, ROOM_CODE_RE } from './protocol.js';
16
- import { identityHeader, KIT_HOST, newRoomCode, roomStub } from './internal.js';
16
+ import { identityHeader, KIT_HOST, LIMITED_HEADER, meterStub, MISS_HEADER, missStub, newRoomCode, roomStub } from './internal.js';
17
17
  /** 认人:按部署方式(identify),昵称取地址里的 ?name= */
18
18
  function who(request, env, opts, mint) {
19
19
  return identify(request, env, {
@@ -87,11 +87,52 @@ export async function acceptJoin(request, env, code, opts = {}) {
87
87
  if ('error' in w)
88
88
  return w.error === 'anonymous' ? refuse(CLOSE.unauthorized, 'login first') : refuse(CLOSE.tryLater, 'try later');
89
89
  const me = w.user;
90
+ // 进房猜码(0.14.0):这一小时"码不存在"超了门槛的人(或 IP)带上 LIMITED_HEADER,房间只放自己人进,别人不管房间在不在都回 1013,
91
+ // 说不出房间在不在;在打的人照常重连。计量连不上时同样处理(和开房一样不放新人进来)
92
+ const guard = missGuard(env, me.userId, request.headers.get('cf-connecting-ip'));
93
+ let limited = false;
94
+ try {
95
+ limited = !!guard && !(await guard.ok());
96
+ }
97
+ catch (e) {
98
+ console.error('join guard failed', e instanceof Error ? e.message : e);
99
+ limited = true;
100
+ }
90
101
  // 新建请求,只带认好的身份和客户端版本;浏览器带来的 x-kit-user 之类的头一律不转
91
102
  const cv = new URL(request.url).searchParams.get('cv') ?? '0';
92
- return roomStub(env.ROOM, code).fetch(`https://${KIT_HOST}/ws?cv=${encodeURIComponent(cv)}`, {
93
- headers: { upgrade: 'websocket', 'x-kit-user': identityHeader(me) },
103
+ const res = await roomStub(env.ROOM, code).fetch(`https://${KIT_HOST}/ws?cv=${encodeURIComponent(cv)}`, {
104
+ headers: { upgrade: 'websocket', 'x-kit-user': identityHeader(me), ...(limited ? { [LIMITED_HEADER]: '1' } : {}) },
94
105
  });
106
+ if (!res.headers.has(MISS_HEADER))
107
+ return res;
108
+ // 房间说"这个码没有房间":记一次(按人、按 IP 各 1 行,再报进当天的写入),转给浏览器的回话不带这个内部头
109
+ if (guard)
110
+ await guard.miss().catch((e) => console.error('join miss record failed', e instanceof Error ? e.message : e));
111
+ return new Response(null, { status: 101, webSocket: res.webSocket });
112
+ }
113
+ /**
114
+ * 按人、按 IP 数"码不存在"(0.14.0,第三轮审计:6 位房间码能一个个试)。没绑 METER(单独部署、测试里没配)就不管,和开房额度一样。
115
+ * 没有 IP 头(本地开发)只按人算
116
+ */
117
+ function missGuard(env, userId, ip) {
118
+ const ns = env.METER;
119
+ if (!ns)
120
+ return null;
121
+ const keys = [[`u:${userId}`, 'user']];
122
+ if (ip)
123
+ keys.push([`ip:${ip}`, 'ip']);
124
+ const stub = (k) => missStub(ns, k);
125
+ return {
126
+ async ok() {
127
+ const blocked = await Promise.all(keys.map(([k, kind]) => stub(k).kitMissBlocked(kind)));
128
+ return !blocked.includes(true);
129
+ },
130
+ async miss() {
131
+ await Promise.all(keys.map(([k]) => stub(k).kitMiss()));
132
+ // 这几行也记进当天的写入(计量自己的规矩),报一次计量再写 1 行
133
+ await meterStub(ns).kitReport(keys.length);
134
+ },
135
+ };
95
136
  }
96
137
  function refuse(code, reason) {
97
138
  const pair = new WebSocketPair();
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yyyu-star/arcade-kit",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "Multiplayer toolkit for small Cloudflare Workers games: Durable Object game rooms, room create/join entry points, browser client, daily write quota, ChaCha20 RNG, platform or standalone (guest) identity. 小游戏共用的联机底座",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/internal.ts CHANGED
@@ -58,6 +58,17 @@ export function roomStub(ns: DurableObjectNamespace, code: string): DurableObjec
58
58
  /** 计量的名字:每个游戏 Worker 只有这一个实例(meter.ts)。 */
59
59
  export const METER_NAME = 'kit-meter';
60
60
 
61
+ /** 进房猜码的计数(0.14.0):按人(u:<userId>)、按 IP(ip:<地址>)各一个小实例,和全站的计量同一个类、不同名字,不挤一个热点 */
62
+ export function missStub(ns: DurableObjectNamespace, key: string): DurableObjectStub {
63
+ return ns.get(ns.idFromName(`kit-miss:${key}`), { locationHint: 'apac' });
64
+ }
65
+
66
+ /** 房间告诉 acceptJoin"这个码没有房间"的内部头(只在房间回给 Worker 的 101 上,转给浏览器前去掉) */
67
+ export const MISS_HEADER = 'x-kit-miss';
68
+
69
+ /** acceptJoin 告诉房间"这个人猜码超了门槛"的内部头:房间只放自己人(房主、入座的、绑过座位的)进来,别人一律 1013 */
70
+ export const LIMITED_HEADER = 'x-kit-limited';
71
+
61
72
  /** 计量的 stub:和房间一样放在亚太,开房、报数少绕路。 */
62
73
  export function meterStub(ns: DurableObjectNamespace): DurableObjectStub {
63
74
  return ns.get(ns.idFromName(METER_NAME), { locationHint: 'apac' });
package/src/meter.ts CHANGED
@@ -31,6 +31,12 @@ export interface QuotaLimits {
31
31
  busyWrites: number;
32
32
  /** 当天写入到这么多行:在打的房间这一段打完收场 */
33
33
  stopWrites: number;
34
+ /**
35
+ * 进房猜码(0.14.0,第三轮审计):每个人每小时最多几次"房间码不存在"、每个 IP 每小时最多几次。超了这一小时里进任何房间都回 1013,
36
+ * 存在的房间也一样(不然 1013 和 welcome 的差别照样说出房间在不在)。房间码只有 6 位,不限就能一个个试出谁开着房
37
+ */
38
+ joinMissesPerUser: number;
39
+ joinMissesPerIp: number;
34
40
  }
35
41
 
36
42
  export const DEFAULT_QUOTA: QuotaLimits = {
@@ -39,6 +45,9 @@ export const DEFAULT_QUOTA: QuotaLimits = {
39
45
  dailyRooms: 300,
40
46
  busyWrites: 60_000,
41
47
  stopWrites: 85_000,
48
+ // 正常人输错码一小时也就几次;一个 IP 后面可能是一家人、一个宿舍,放宽一些
49
+ joinMissesPerUser: 20,
50
+ joinMissesPerIp: 60,
42
51
  };
43
52
 
44
53
  /** KIT_QUOTA 里由房间读的字段(0.7.0):emoteMs 每多少毫秒补一个短语令牌(0 不限速),emoteBurst 最多攒几个 */
@@ -130,6 +139,30 @@ export class RoomMeter extends DurableObject<MeterEnv> {
130
139
  return levelOf(this.day(Date.now()).writes, this.limits());
131
140
  }
132
141
 
142
+ /**
143
+ * 进房猜码(0.14.0):这两个方法用在 missStub 按人、按 IP 取的小实例上(不是全站那一个),不碰 SQL 表,只存一个 { 第几个小时, 几次 }。
144
+ * kitMissBlocked 只读,进房前问(门槛在这里按 KIT_QUOTA 算,worker.ts 不用在运行时引用本文件:它要能在普通 Node 里加载);
145
+ * kitMiss 记一次(1 行),只有真的进了一个不存在的房间才调,超了门槛的人进不到这一步,所以一小时最多写门槛那么多行
146
+ */
147
+ async kitMissBlocked(kind: 'user' | 'ip'): Promise<boolean> {
148
+ const lim = this.limits();
149
+ return (await this.kitMisses()) >= (kind === 'user' ? lim.joinMissesPerUser : lim.joinMissesPerIp);
150
+ }
151
+
152
+ /** 只读:这一小时记了几次(给测试看) */
153
+ async kitMisses(): Promise<number> {
154
+ const r = await this.ctx.storage.get<{ h: number; n: number }>('miss');
155
+ return r && r.h === hourOf(Date.now()) ? r.n : 0;
156
+ }
157
+
158
+ async kitMiss(): Promise<number> {
159
+ const h = hourOf(Date.now());
160
+ const r = await this.ctx.storage.get<{ h: number; n: number }>('miss');
161
+ const n = (r && r.h === h ? r.n : 0) + 1;
162
+ await this.ctx.storage.put('miss', { h, n });
163
+ return n;
164
+ }
165
+
133
166
  /** 只读:当天的数,给运维和测试看。 */
134
167
  async kitUsage(): Promise<Usage> {
135
168
  const day = this.day(Date.now());
@@ -245,6 +278,10 @@ export function levelOf(writes: number, lim: QuotaLimits): MeterLevel {
245
278
  return 'ok';
246
279
  }
247
280
 
281
+ function hourOf(now: number): number {
282
+ return Math.floor(now / 3_600_000);
283
+ }
284
+
248
285
  function utcDay(now: number): string {
249
286
  return new Date(now).toISOString().slice(0, 10);
250
287
  }
package/src/room.ts CHANGED
@@ -18,7 +18,7 @@
18
18
  */
19
19
  import { DurableObject } from 'cloudflare:workers';
20
20
  import type { RoomEffect, RoomGame, RoomSetup } from './game.js';
21
- import { type Identity, KIT_HOST, meterStub, parseIdentity } from './internal.js';
21
+ import { type Identity, KIT_HOST, LIMITED_HEADER, MISS_HEADER, meterStub, parseIdentity } from './internal.js';
22
22
  import type { MeterEnv, MeterLevel, RoomMeter } from './meter.js';
23
23
  import { ENTROPY_WORDS } from './rng.js';
24
24
  import {
@@ -60,7 +60,9 @@ export interface RoomLimits {
60
60
  * 这些重连同时算进 maxInbound,房间一生的写入总数有上限
61
61
  */
62
62
  maxJoins: number;
63
- /** 没入座的连接最多几条(来看的、还没选座位的),超了 4003。入座的人不占这个数,掉线回来总能进 */
63
+ /**
64
+ * 没入座的人最多几个(来看的、还没选座位的),超了 4003。按账号算(0.14.0,以前按连接);入座的人、房主、开打后绑过座位的人不占这个数,掉线回来总能进
65
+ */
64
66
  extraConnections: number;
65
67
  /** 房间最长寿命 */
66
68
  maxLifeMs: number;
@@ -311,7 +313,8 @@ export abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E extends Ro
311
313
  private alarmToSet: number | null = null;
312
314
  private pendingInbound = 0;
313
315
  private readonly pendingBy = new Map<string, number>();
314
- private readonly buckets = new WeakMap<WebSocket, { tokens: number; at: number }>();
316
+ /** 入站消息的令牌桶,按 userId 记(0.14.0;以前按连接,断开重连就换一个满的桶,第三轮审计) */
317
+ private readonly buckets = new Map<string, { tokens: number; at: number }>();
315
318
  /** 每个座位快捷短语的令牌桶(内存里;被驱逐就重置成满的,驱逐前至少空闲了一阵,本来也该满了) */
316
319
  private readonly emoteBuckets = new Map<number, { tokens: number; at: number }>();
317
320
  private emoteRateCache: EmoteRate | null = null;
@@ -389,6 +392,8 @@ export abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E extends Ro
389
392
  }
390
393
  const me = parseIdentity(request.headers.get('x-kit-user'));
391
394
  if (!me) return new Response('no identity', { status: 401 });
395
+ // 猜码超了门槛(0.14.0):自己人照常进(断线重连不受牵连),别人不管房间在不在都回 1013,说不出房间在不在
396
+ if (request.headers.has(LIMITED_HEADER) && !this.insider(me.userId)) return this.refuse(CLOSE.tryLater);
392
397
  const gate = await this.newcomerGate(me.userId);
393
398
  if (gate !== null) return this.refuse(gate);
394
399
  return this.entry(() => this.join(me, url.searchParams.get('cv')));
@@ -639,7 +644,8 @@ export abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E extends Ro
639
644
  const st = this.load();
640
645
  if (!st) {
641
646
  server.close(CLOSE.noRoom, 'no room');
642
- return done();
647
+ // 告诉 acceptJoin 这是一次"码不存在"(0.14.0,进房猜码按人、按 IP 计数);它转给浏览器前去掉这个头
648
+ return new Response(null, { status: 101, webSocket: client, headers: { [MISS_HEADER]: '1' } });
643
649
  }
644
650
  if (st.ending) {
645
651
  server.close(CLOSE.roomClosed, st.ending.reason);
@@ -653,10 +659,12 @@ export abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E extends Ro
653
659
  const seat = this.seatOf(me.userId);
654
660
  const others = this.sockets().filter((o) => o !== server && attachmentOf(o));
655
661
  const mine = others.filter((o) => attachmentOf(o)!.userId === me.userId);
656
- if (seat === null) {
657
- // 没入座的连接单独封顶;入座的人不占这个数,旁观的再多也挡不住座位的主人回来
658
- const watching = others.filter((o) => o !== server && this.seatOf(attachmentOf(o)!.userId) === null && !mine.includes(o));
659
- if (watching.length >= this.limits.extraConnections) {
662
+ if (seat === null && !this.ownsRoom(st, me.userId)) {
663
+ // 没入座的单独封顶;入座的人不占这个数,旁观的再多也挡不住座位的主人回来。
664
+ // 0.14.0(第三轮审计):按账号数不按连接数(一个人开几个标签页只占一个),房主和开打后绑过座位的人(离座去看的)不占也不受这个限,
665
+ // 不然几个陌生账号就能占满名额,让房主的朋友连进来选座都进不来
666
+ const watchers = new Set(others.map((o) => attachmentOf(o)!.userId).filter((u) => u !== me.userId && this.seatOf(u) === null && !this.ownsRoom(st, u)));
667
+ if (watchers.size >= this.limits.extraConnections) {
660
668
  server.close(CLOSE.full, 'room full');
661
669
  return done();
662
670
  }
@@ -718,7 +726,7 @@ export abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E extends Ro
718
726
  if (!st || !me || st.ending) return void ws.close(CLOSE.roomClosed, 'room closed');
719
727
  const bytes = typeof message === 'string' ? new TextEncoder().encode(message).byteLength : message.byteLength;
720
728
  if (bytes > this.limits.maxMessageBytes) return void ws.close(CLOSE.tooBig, 'message too big');
721
- if (!this.takeToken(ws)) return void ws.close(CLOSE.policy, 'too fast');
729
+ if (!this.takeToken(me.userId)) return void ws.close(CLOSE.policy, 'too fast');
722
730
  const counted = this.countInbound(st, me.userId);
723
731
  if (counted === 'user') return void ws.close(CLOSE.userQuota, 'too many messages');
724
732
  if (counted === 'room') return this.closeRoom();
@@ -1600,6 +1608,17 @@ export abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E extends Ro
1600
1608
  };
1601
1609
  }
1602
1610
 
1611
+ /** 这个房间的自己人:房主、坐着的、开打后绑过座位的。猜码超限时只放他们进(0.14.0) */
1612
+ private insider(userId: string): boolean {
1613
+ const st = this.load();
1614
+ return !!st && (st.host === userId || this.seatOf(userId) !== null || this.boundOf(userId) !== null);
1615
+ }
1616
+
1617
+ /** 房主,或者开打后绑过座位的人:旁观名额不算他们(0.14.0) */
1618
+ private ownsRoom(st: Persist<S>, userId: string): boolean {
1619
+ return st.host === userId || st.owners.includes(userId);
1620
+ }
1621
+
1603
1622
  /** 这个人开打后绑定的座位(离座了也还是它);还没开打、没坐过为 null。 */
1604
1623
  private boundOf(userId: string): number | null {
1605
1624
  const i = this.st!.owners.indexOf(userId);
@@ -1660,15 +1679,18 @@ export abstract class GameRoom<S, A, V, Env = unknown, O = unknown, E extends Ro
1660
1679
  this.send(ws, { t: 'error', code, ...(moveId ? { moveId } : {}) });
1661
1680
  }
1662
1681
 
1663
- /** 每个连接一个令牌桶(内存里;被驱逐后重置成满的,驱逐前至少空闲了一阵,本来也该满了)。 */
1664
- private takeToken(ws: WebSocket): boolean {
1682
+ /**
1683
+ * 每个人一个令牌桶(内存里;被驱逐后重置成满的,驱逐前至少空闲了一阵,本来也该满了)。
1684
+ * 按人不按连接(0.14.0):断开重连、多开几个标签页都还是同一个桶,刷不出新的 burst
1685
+ */
1686
+ private takeToken(userId: string): boolean {
1665
1687
  const now = Date.now();
1666
- const b = this.buckets.get(ws) ?? { tokens: this.limits.rateBurst, at: now };
1688
+ const b = this.buckets.get(userId) ?? { tokens: this.limits.rateBurst, at: now };
1667
1689
  b.tokens = Math.min(this.limits.rateBurst, b.tokens + ((now - b.at) / 1000) * this.limits.ratePerSec);
1668
1690
  b.at = now;
1669
1691
  if (b.tokens < 1) return false;
1670
1692
  b.tokens -= 1;
1671
- this.buckets.set(ws, b);
1693
+ this.buckets.set(userId, b);
1672
1694
  return true;
1673
1695
  }
1674
1696
  }
package/src/worker.ts CHANGED
@@ -13,8 +13,9 @@
13
13
  import { identify, sameOrigin } from './auth.js';
14
14
  import { type GuestOptions, isStandalone, type ModeEnv } from './guest.js';
15
15
  import { CLOSE, type CreateError, ROOM_CODE_RE } from './protocol.js';
16
- import { identityHeader, type Identity, KIT_HOST, newRoomCode, roomStub } from './internal.js';
17
- import type { MeterEnv } from './meter.js';
16
+ import { identityHeader, type Identity, KIT_HOST, LIMITED_HEADER, meterStub, MISS_HEADER, missStub, newRoomCode, roomStub } from './internal.js';
17
+ // 只引类型:meter.ts 依赖 cloudflare:workers,游戏会在普通 Node 的测试里加载本文件
18
+ import type { MeterEnv, RoomMeter } from './meter.js';
18
19
  import type { CreateOutcome } from './room.js';
19
20
 
20
21
  /**
@@ -119,11 +120,48 @@ export async function acceptJoin(request: Request, env: KitEnv, code: string, op
119
120
  const w = await who(request, env, opts, false);
120
121
  if ('error' in w) return w.error === 'anonymous' ? refuse(CLOSE.unauthorized, 'login first') : refuse(CLOSE.tryLater, 'try later');
121
122
  const me = w.user;
123
+ // 进房猜码(0.14.0):这一小时"码不存在"超了门槛的人(或 IP)带上 LIMITED_HEADER,房间只放自己人进,别人不管房间在不在都回 1013,
124
+ // 说不出房间在不在;在打的人照常重连。计量连不上时同样处理(和开房一样不放新人进来)
125
+ const guard = missGuard(env, me.userId, request.headers.get('cf-connecting-ip'));
126
+ let limited = false;
127
+ try {
128
+ limited = !!guard && !(await guard.ok());
129
+ } catch (e) {
130
+ console.error('join guard failed', e instanceof Error ? e.message : e);
131
+ limited = true;
132
+ }
122
133
  // 新建请求,只带认好的身份和客户端版本;浏览器带来的 x-kit-user 之类的头一律不转
123
134
  const cv = new URL(request.url).searchParams.get('cv') ?? '0';
124
- return roomStub(env.ROOM, code).fetch(`https://${KIT_HOST}/ws?cv=${encodeURIComponent(cv)}`, {
125
- headers: { upgrade: 'websocket', 'x-kit-user': identityHeader(me) },
135
+ const res = await roomStub(env.ROOM, code).fetch(`https://${KIT_HOST}/ws?cv=${encodeURIComponent(cv)}`, {
136
+ headers: { upgrade: 'websocket', 'x-kit-user': identityHeader(me), ...(limited ? { [LIMITED_HEADER]: '1' } : {}) },
126
137
  });
138
+ if (!res.headers.has(MISS_HEADER)) return res;
139
+ // 房间说"这个码没有房间":记一次(按人、按 IP 各 1 行,再报进当天的写入),转给浏览器的回话不带这个内部头
140
+ if (guard) await guard.miss().catch((e: unknown) => console.error('join miss record failed', e instanceof Error ? e.message : e));
141
+ return new Response(null, { status: 101, webSocket: res.webSocket });
142
+ }
143
+
144
+ /**
145
+ * 按人、按 IP 数"码不存在"(0.14.0,第三轮审计:6 位房间码能一个个试)。没绑 METER(单独部署、测试里没配)就不管,和开房额度一样。
146
+ * 没有 IP 头(本地开发)只按人算
147
+ */
148
+ function missGuard(env: KitEnv, userId: string, ip: string | null): { ok(): Promise<boolean>; miss(): Promise<void> } | null {
149
+ const ns = env.METER;
150
+ if (!ns) return null;
151
+ const keys: [string, 'user' | 'ip'][] = [[`u:${userId}`, 'user']];
152
+ if (ip) keys.push([`ip:${ip}`, 'ip']);
153
+ const stub = (k: string) => missStub(ns, k) as DurableObjectStub<RoomMeter>;
154
+ return {
155
+ async ok() {
156
+ const blocked = await Promise.all(keys.map(([k, kind]) => stub(k).kitMissBlocked(kind)));
157
+ return !blocked.includes(true);
158
+ },
159
+ async miss() {
160
+ await Promise.all(keys.map(([k]) => stub(k).kitMiss()));
161
+ // 这几行也记进当天的写入(计量自己的规矩),报一次计量再写 1 行
162
+ await (meterStub(ns) as DurableObjectStub<RoomMeter>).kitReport(keys.length);
163
+ },
164
+ };
127
165
  }
128
166
 
129
167
  function refuse(code: number, reason: string): Response {