@yyyu-star/arcade-kit 0.13.1 → 0.15.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 +25 -0
- package/README.md +16 -5
- package/dist/internal.d.ts +6 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +8 -0
- package/dist/internal.js.map +1 -1
- package/dist/meter.d.ts +15 -0
- package/dist/meter.d.ts.map +1 -1
- package/dist/meter.js +27 -0
- package/dist/meter.js.map +1 -1
- package/dist/qr.d.ts +15 -0
- package/dist/qr.d.ts.map +1 -0
- package/dist/qr.js +264 -0
- package/dist/qr.js.map +1 -0
- package/dist/room.d.ts +12 -2
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +31 -12
- package/dist/room.js.map +1 -1
- package/dist/share.d.ts +33 -14
- package/dist/share.d.ts.map +1 -1
- package/dist/share.js +99 -22
- package/dist/share.js.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +44 -3
- package/dist/worker.js.map +1 -1
- package/package.json +2 -1
- package/src/internal.ts +11 -0
- package/src/meter.ts +37 -0
- package/src/qr.ts +259 -0
- package/src/room.ts +35 -13
- package/src/share.ts +104 -24
- package/src/worker.ts +42 -4
package/dist/share.js
CHANGED
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
* - 游戏只交数据(`ShareCard`),画法统一在这里,几个游戏风格一致;kit 不认识任何游戏,名字、图标、主题色都由游戏给。
|
|
6
6
|
* - 这个文件只在调用时碰 DOM,import 时不碰(房间、测试里 import 没事);排版的算法是纯函数,测试在 test/share.test.ts。
|
|
7
7
|
* - 图上只有游戏给的数据:别人的隐藏信息(没摊的底牌、手牌)游戏自己别放进来。
|
|
8
|
+
* - 右下角的二维码(0.15.0):朋友圈里的图不能点,扫码是唯一入口。内容是运行时的 location.origin 加上 opts.url 的路径,
|
|
9
|
+
* kit 和游戏都不写域名;编码器是 qr.ts(自己写的最小子集,不引依赖)。
|
|
10
|
+
* - 微信内置浏览器(0.15.0):没有 navigator.share,下载链接也常常不生效,预览图改用 data: URL(blob: 的图长按经常存不下来),提示改成长按。
|
|
8
11
|
*/
|
|
12
|
+
import { qrEncode } from './qr.js';
|
|
9
13
|
/** 卡的尺寸:竖版 4:5,社交软件里不被裁 */
|
|
10
14
|
export const CARD_W = 1080;
|
|
11
15
|
export const CARD_H = 1350;
|
|
@@ -123,6 +127,34 @@ export function artRect(src, box, fit = 'contain', crop) {
|
|
|
123
127
|
const dh = sh * k;
|
|
124
128
|
return [sx, sy, sw, sh, box.x + (box.w - dw) / 2, box.y + (box.h - dh) / 2, dw, dh];
|
|
125
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* 码里和分享出去的链接(0.15.0):只认运行时的 origin,游戏给的 url 只取路径、查询和 # 后面的部分。
|
|
132
|
+
* 这样 kit 和游戏里都不写域名,单独部署的游戏(workers.dev)扫出来也是它自己
|
|
133
|
+
*/
|
|
134
|
+
export function shareLink(url, origin) {
|
|
135
|
+
const u = new URL(url, `${origin}/`);
|
|
136
|
+
return `${origin}${u.pathname}${u.search}${u.hash}`;
|
|
137
|
+
}
|
|
138
|
+
/** 系统分享的文字末尾带上链接(0.15.0):有的 App 只取 text、不取 url */
|
|
139
|
+
export function shareText(text, link) {
|
|
140
|
+
return text.includes(link) ? text : `${text} ${link}`;
|
|
141
|
+
}
|
|
142
|
+
/** 微信内置浏览器(UA 带 MicroMessenger,含企业微信) */
|
|
143
|
+
export function isWeChat(ua) {
|
|
144
|
+
return /MicroMessenger/i.test(ua);
|
|
145
|
+
}
|
|
146
|
+
/** 预览层怎么出(0.15.0):微信里用 data: URL、提示长按、不给"保存图片";别的浏览器照旧 */
|
|
147
|
+
export function previewMode(ua) {
|
|
148
|
+
return isWeChat(ua)
|
|
149
|
+
? { dataUrl: true, tip: '长按图片 → 发送给朋友,或保存后发朋友圈', save: false }
|
|
150
|
+
: { dataUrl: false, tip: '手机上也可以长按图片保存', save: true };
|
|
151
|
+
}
|
|
152
|
+
/** 二维码在卡上的框:白底留白 ≥ 4 格(扫码的规范要求),每格整数像素、对齐像素,截图后也清楚 */
|
|
153
|
+
export const QR_BOX = 248;
|
|
154
|
+
export function qrLayout(size, box = QR_BOX) {
|
|
155
|
+
const cell = Math.max(1, Math.floor(box / (size + 8)));
|
|
156
|
+
return { cell, pad: Math.floor((box - cell * size) / 2) };
|
|
157
|
+
}
|
|
126
158
|
// ───────────── 画(只在调用时碰 DOM) ─────────────
|
|
127
159
|
const FONT = '"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",system-ui,sans-serif';
|
|
128
160
|
function sizeOf(img) {
|
|
@@ -171,9 +203,16 @@ function fitFont(ctx, text, weight, size, maxW, min) {
|
|
|
171
203
|
ctx.font = `${weight} ${s}px ${FONT}`;
|
|
172
204
|
return s;
|
|
173
205
|
}
|
|
174
|
-
/**
|
|
175
|
-
|
|
206
|
+
/**
|
|
207
|
+
* 画一张卡。canvas 不给就新建一个 1080×1350 的。link 给了(0.15.0,prepareShare 用 shareLink 算好的)就在右下角画二维码,
|
|
208
|
+
* 太长编不了码就不画
|
|
209
|
+
*/
|
|
210
|
+
export async function drawShareCard(input, canvas, link) {
|
|
176
211
|
const c = normalizeCard(input);
|
|
212
|
+
const qr = link ? qrEncode(link) : null;
|
|
213
|
+
// 二维码的白框:右下角,压在底栏上;名场面和日期往左让
|
|
214
|
+
const qx = CARD_W - 72 - QR_BOX;
|
|
215
|
+
const qy = CARD_H - 40 - QR_BOX - 44;
|
|
177
216
|
const cv = canvas ?? document.createElement('canvas');
|
|
178
217
|
cv.width = CARD_W;
|
|
179
218
|
cv.height = CARD_H;
|
|
@@ -258,23 +297,27 @@ export async function drawShareCard(input, canvas) {
|
|
|
258
297
|
if (c.line) {
|
|
259
298
|
ctx.fillStyle = '#ffffff';
|
|
260
299
|
ctx.font = `700 50px ${FONT}`;
|
|
261
|
-
const
|
|
262
|
-
lines.
|
|
300
|
+
const lw = qr ? qx - 32 - M : W - 2 * M - 40;
|
|
301
|
+
const lines = wrapLines(`“${c.line}”`, lw, (s) => ctx.measureText(s).width, 2);
|
|
302
|
+
lines.forEach((l, i) => ctx.fillText(l, qr ? M + lw / 2 : W / 2, 1065 + i * 66));
|
|
263
303
|
}
|
|
264
304
|
// 底:昵称、称号、日期
|
|
265
305
|
ctx.fillStyle = 'rgba(0,0,0,0.22)';
|
|
266
306
|
ctx.fillRect(0, CARD_H - 150, W, 150);
|
|
307
|
+
ctx.font = `600 38px ${FONT}`;
|
|
308
|
+
const dateRight = qr ? qx - 28 : W - M;
|
|
309
|
+
const dateLeft = dateRight - ctx.measureText(cardDate(c.date)).width;
|
|
267
310
|
ctx.textAlign = 'left';
|
|
268
311
|
ctx.fillStyle = '#ffffff';
|
|
269
312
|
if (c.player) {
|
|
270
|
-
fitFont(ctx, c.player.name, '800', 50, W * 0.5, 32);
|
|
313
|
+
fitFont(ctx, c.player.name, '800', 50, Math.min(W * 0.5, dateLeft - 24 - M), 32);
|
|
271
314
|
ctx.fillText(c.player.name, M, CARD_H - 62);
|
|
272
315
|
if (c.player.badge) {
|
|
273
316
|
const nw = ctx.measureText(c.player.name).width;
|
|
274
317
|
ctx.font = `700 34px ${FONT}`;
|
|
275
318
|
const bw = ctx.measureText(c.player.badge).width + 36;
|
|
276
319
|
const bx = M + nw + 24;
|
|
277
|
-
if (bx + bw < W * 0.72) {
|
|
320
|
+
if (bx + bw < Math.min(W * 0.72, dateLeft - 16)) {
|
|
278
321
|
round(ctx, bx, CARD_H - 104, bw, 54, 27);
|
|
279
322
|
ctx.fillStyle = shade(c.accent, 0.75);
|
|
280
323
|
ctx.fill();
|
|
@@ -286,12 +329,29 @@ export async function drawShareCard(input, canvas) {
|
|
|
286
329
|
ctx.textAlign = 'right';
|
|
287
330
|
ctx.fillStyle = 'rgba(255,255,255,0.8)';
|
|
288
331
|
ctx.font = `600 38px ${FONT}`;
|
|
289
|
-
ctx.fillText(cardDate(c.date),
|
|
332
|
+
ctx.fillText(cardDate(c.date), dateRight, CARD_H - 62);
|
|
333
|
+
if (qr) {
|
|
334
|
+
// 纯白底、近黑的格,不叠阴影和渐变:对比度够,手机截图压缩后照样扫得出
|
|
335
|
+
ctx.fillStyle = '#ffffff';
|
|
336
|
+
round(ctx, qx, qy, QR_BOX, QR_BOX + 44, 24);
|
|
337
|
+
ctx.fill();
|
|
338
|
+
const { cell, pad } = qrLayout(qr.size);
|
|
339
|
+
ctx.fillStyle = '#111111';
|
|
340
|
+
for (let y = 0; y < qr.size; y++) {
|
|
341
|
+
for (let x = 0; x < qr.size; x++)
|
|
342
|
+
if (qr.dark[y][x])
|
|
343
|
+
ctx.fillRect(qx + pad + x * cell, qy + pad + y * cell, cell, cell);
|
|
344
|
+
}
|
|
345
|
+
ctx.fillStyle = '#444444';
|
|
346
|
+
ctx.textAlign = 'center';
|
|
347
|
+
ctx.font = `700 28px ${FONT}`;
|
|
348
|
+
ctx.fillText('扫码来玩', qx + QR_BOX / 2, qy + QR_BOX + 22);
|
|
349
|
+
}
|
|
290
350
|
return cv;
|
|
291
351
|
}
|
|
292
|
-
/** 画成 PNG */
|
|
293
|
-
export async function shareCardBlob(card) {
|
|
294
|
-
const cv = await drawShareCard(card);
|
|
352
|
+
/** 画成 PNG;link 见 drawShareCard */
|
|
353
|
+
export async function shareCardBlob(card, link) {
|
|
354
|
+
const cv = await drawShareCard(card, undefined, link);
|
|
295
355
|
return new Promise((resolve, reject) => cv.toBlob((b) => (b ? resolve(b) : reject(new Error('toBlob failed'))), 'image/png'));
|
|
296
356
|
}
|
|
297
357
|
const PREVIEW_ID = 'arcade-share-preview';
|
|
@@ -301,18 +361,22 @@ const PREVIEW_ID = 'arcade-share-preview';
|
|
|
301
361
|
*/
|
|
302
362
|
export function prepareShare(card, opts) {
|
|
303
363
|
const name = opts.fileName ?? 'share.png';
|
|
304
|
-
|
|
364
|
+
// 没有 DOM(房间、测试里)时 location 也没有:链接照原样,画卡那一步本来就会失败
|
|
365
|
+
const link = typeof location === 'undefined' ? opts.url : shareLink(opts.url, location.origin);
|
|
366
|
+
const text = shareText(opts.text ?? `${card.game} · ${card.big.label} ${card.big.value}`, link);
|
|
367
|
+
const o = { ...opts, url: link };
|
|
305
368
|
let blob = null;
|
|
306
369
|
let failed = null;
|
|
307
|
-
const ready = shareCardBlob(card).then((b) => {
|
|
370
|
+
const ready = shareCardBlob(card, link).then((b) => {
|
|
308
371
|
blob = b;
|
|
309
372
|
}, (e) => {
|
|
310
373
|
failed = e ?? new Error('draw failed');
|
|
311
374
|
});
|
|
312
375
|
const attempt = (b) => {
|
|
313
376
|
const nav = navigator;
|
|
314
|
-
|
|
315
|
-
|
|
377
|
+
// 微信里不试系统分享(没有,或者有也发不出图),直接出长按的预览
|
|
378
|
+
if (!isWeChat(nav.userAgent) && typeof File === 'function' && typeof nav.share === 'function') {
|
|
379
|
+
const data = { files: [new File([b], name, { type: 'image/png' })], title: card.game, text, url: link };
|
|
316
380
|
if (nav.canShare?.(data)) {
|
|
317
381
|
// 同步调(这一行之前没有 await):点击的激活还在
|
|
318
382
|
return nav.share(data).then(() => {
|
|
@@ -322,12 +386,12 @@ export function prepareShare(card, opts) {
|
|
|
322
386
|
if (e?.name === 'AbortError')
|
|
323
387
|
return 'cancelled';
|
|
324
388
|
// 别的错(激活过期、权限、不支持的类型):退回预览
|
|
325
|
-
showPreview(b, name,
|
|
389
|
+
showPreview(b, name, o);
|
|
326
390
|
return 'preview';
|
|
327
391
|
});
|
|
328
392
|
}
|
|
329
393
|
}
|
|
330
|
-
showPreview(b, name,
|
|
394
|
+
showPreview(b, name, o);
|
|
331
395
|
return Promise.resolve('preview');
|
|
332
396
|
};
|
|
333
397
|
return {
|
|
@@ -352,28 +416,40 @@ export async function shareCard(card, opts) {
|
|
|
352
416
|
await p.ready;
|
|
353
417
|
return p.share();
|
|
354
418
|
}
|
|
355
|
-
/** 不支持系统分享时:预览图 + "保存图片""复制链接";点空白处或"关闭"
|
|
419
|
+
/** 不支持系统分享时:预览图 + "保存图片""复制链接";点空白处或"关闭"收起。微信里见 previewMode */
|
|
356
420
|
function showPreview(blob, name, opts) {
|
|
357
421
|
document.getElementById(PREVIEW_ID)?.remove();
|
|
358
|
-
const
|
|
422
|
+
const mode = previewMode(navigator.userAgent);
|
|
423
|
+
// 微信里不用 blob:(长按存不下来),也就不建对象 URL
|
|
424
|
+
const url = mode.dataUrl ? '' : URL.createObjectURL(blob);
|
|
359
425
|
const root = document.createElement('div');
|
|
360
426
|
root.id = PREVIEW_ID;
|
|
361
427
|
root.setAttribute('role', 'dialog');
|
|
362
428
|
root.style.cssText = `position:fixed;inset:0;z-index:${opts.zIndex ?? 11000};display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:16px;box-sizing:border-box;background:rgba(0,0,0,.72);font:600 16px ${FONT};color:#fff`;
|
|
363
429
|
const close = () => {
|
|
364
430
|
root.remove();
|
|
365
|
-
|
|
431
|
+
if (url)
|
|
432
|
+
URL.revokeObjectURL(url);
|
|
366
433
|
};
|
|
367
434
|
root.addEventListener('click', (e) => {
|
|
368
435
|
if (e.target === root)
|
|
369
436
|
close();
|
|
370
437
|
});
|
|
371
438
|
const img = document.createElement('img');
|
|
372
|
-
|
|
439
|
+
if (url)
|
|
440
|
+
img.src = url;
|
|
441
|
+
else {
|
|
442
|
+
const reader = new FileReader();
|
|
443
|
+
reader.onload = () => {
|
|
444
|
+
if (typeof reader.result === 'string')
|
|
445
|
+
img.src = reader.result;
|
|
446
|
+
};
|
|
447
|
+
reader.readAsDataURL(blob);
|
|
448
|
+
}
|
|
373
449
|
img.alt = '战绩图';
|
|
374
450
|
img.style.cssText = 'max-width:min(92vw,540px);max-height:calc(100% - 140px);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.5)';
|
|
375
451
|
const tip = document.createElement('div');
|
|
376
|
-
tip.textContent =
|
|
452
|
+
tip.textContent = mode.tip;
|
|
377
453
|
tip.style.cssText = 'font-size:13px;opacity:.75';
|
|
378
454
|
const row = document.createElement('div');
|
|
379
455
|
row.style.cssText = 'display:flex;gap:12px;flex-wrap:wrap;justify-content:center';
|
|
@@ -411,7 +487,8 @@ function showPreview(blob, name, opts) {
|
|
|
411
487
|
done(false);
|
|
412
488
|
});
|
|
413
489
|
const shut = btn('关闭', 'share:close', close);
|
|
414
|
-
|
|
490
|
+
if (mode.save)
|
|
491
|
+
row.appendChild(save);
|
|
415
492
|
row.appendChild(copy);
|
|
416
493
|
row.appendChild(shut);
|
|
417
494
|
root.appendChild(img);
|
package/dist/share.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.js","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"share.js","sourceRoot":"","sources":["../src/share.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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();
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAqB,YAAY,EAAgB,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAoB,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,cAAc,EAAiB,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
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.
|
|
3
|
+
"version": "0.15.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",
|
|
@@ -118,6 +118,7 @@
|
|
|
118
118
|
"devDependencies": {
|
|
119
119
|
"@cloudflare/vitest-plugin": "^1.4.1",
|
|
120
120
|
"@cloudflare/workers-types": "^5.20261014.1",
|
|
121
|
+
"jsqr": "^1.4.0",
|
|
121
122
|
"typescript": "^7.0.2",
|
|
122
123
|
"vitest": "^5.0.4",
|
|
123
124
|
"wrangler": "^4.150.0"
|
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
|
}
|