summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2020-10-09 14:20:34 +0900
committerGitHub <noreply@github.com>2020-10-09 14:20:34 +0900
commit00a17ed5d4ee7f3720dcb5e5b8c8804be3dcb23b (patch)
tree9321b3e284d3f78bdd68c3af32bbbfa2dace1195
parentUpdate resolutions (#6723) (diff)
downloadsharkey-00a17ed5d4ee7f3720dcb5e5b8c8804be3dcb23b.tar.gz
sharkey-00a17ed5d4ee7f3720dcb5e5b8c8804be3dcb23b.tar.bz2
sharkey-00a17ed5d4ee7f3720dcb5e5b8c8804be3dcb23b.zip
/streamingに非WebSocketリクエストが来るとおかしくなるのを修正 Fix #6718 (#6719)
-rw-r--r--src/client/scripts/stream.ts8
-rw-r--r--src/server/web/index.ts6
2 files changed, 13 insertions, 1 deletions
diff --git a/src/client/scripts/stream.ts b/src/client/scripts/stream.ts
index 8a525ba002..defb22af8e 100644
--- a/src/client/scripts/stream.ts
+++ b/src/client/scripts/stream.ts
@@ -3,6 +3,7 @@ import { EventEmitter } from 'eventemitter3';
import ReconnectingWebsocket from 'reconnecting-websocket';
import { wsUrl } from '../config';
import MiOS from '../mios';
+import { query as urlQuery } from '../../prelude/url';
/**
* Misskey stream connection
@@ -21,7 +22,12 @@ export default class Stream extends EventEmitter {
const user = os.store.state.i;
- this.stream = new ReconnectingWebsocket(wsUrl + (user ? `?i=${user.token}` : ''), '', { minReconnectionDelay: 1 }); // https://github.com/pladaria/reconnecting-websocket/issues/91
+ const query = urlQuery({
+ i: user?.token,
+ _t: Date.now(),
+ });
+
+ this.stream = new ReconnectingWebsocket(`${wsUrl}?${query}`, '', { minReconnectionDelay: 1 }); // https://github.com/pladaria/reconnecting-websocket/issues/91
this.stream.addEventListener('open', this.onOpen);
this.stream.addEventListener('close', this.onClose);
this.stream.addEventListener('message', this.onMessage);
diff --git a/src/server/web/index.ts b/src/server/web/index.ts
index 507ddac3ce..58e764ee17 100644
--- a/src/server/web/index.ts
+++ b/src/server/web/index.ts
@@ -358,6 +358,12 @@ router.get('/flush', async ctx => {
await ctx.render('flush');
});
+// streamingに非WebSocketリクエストが来た場合にbase htmlをキャシュ付きで返すと、Proxy等でそのパスがキャッシュされておかしくなる
+router.get('/streaming', async ctx => {
+ ctx.status = 503;
+ ctx.set('Cache-Control', 'private, max-age=0');
+});
+
// Render base html for all requests
router.get('(.*)', async ctx => {
const meta = await fetchMeta();