parent
b594366f06
commit
00a17ed5d4
2 changed files with 13 additions and 1 deletions
|
@ -3,6 +3,7 @@ import { EventEmitter } from 'eventemitter3';
|
||||||
import ReconnectingWebsocket from 'reconnecting-websocket';
|
import ReconnectingWebsocket from 'reconnecting-websocket';
|
||||||
import { wsUrl } from '../config';
|
import { wsUrl } from '../config';
|
||||||
import MiOS from '../mios';
|
import MiOS from '../mios';
|
||||||
|
import { query as urlQuery } from '../../prelude/url';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Misskey stream connection
|
* Misskey stream connection
|
||||||
|
@ -21,7 +22,12 @@ export default class Stream extends EventEmitter {
|
||||||
|
|
||||||
const user = os.store.state.i;
|
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('open', this.onOpen);
|
||||||
this.stream.addEventListener('close', this.onClose);
|
this.stream.addEventListener('close', this.onClose);
|
||||||
this.stream.addEventListener('message', this.onMessage);
|
this.stream.addEventListener('message', this.onMessage);
|
||||||
|
|
|
@ -358,6 +358,12 @@ router.get('/flush', async ctx => {
|
||||||
await ctx.render('flush');
|
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
|
// Render base html for all requests
|
||||||
router.get('(.*)', async ctx => {
|
router.get('(.*)', async ctx => {
|
||||||
const meta = await fetchMeta();
|
const meta = await fetchMeta();
|
||||||
|
|
Loading…
Reference in a new issue