diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2018-10-07 11:06:17 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-07 11:06:17 +0900 |
| commit | d0570d7fe3a3bf3c6b0312dece74bacc04c3534a (patch) | |
| tree | 698218279a38f9c78b0350e81b8ac77ae52e4a0d /src/server/api/streaming.ts | |
| parent | Fix お知らせが確認中...のままになる(Announcement Fetching...) (... (diff) | |
| download | sharkey-d0570d7fe3a3bf3c6b0312dece74bacc04c3534a.tar.gz sharkey-d0570d7fe3a3bf3c6b0312dece74bacc04c3534a.tar.bz2 sharkey-d0570d7fe3a3bf3c6b0312dece74bacc04c3534a.zip | |
V10 (#2826)
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Update CHANGELOG.md
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Update CHANGELOG.md
* Update CHANGELOG.md
* wip
* Update CHANGELOG.md
* wip
* wip
* wip
* wip
Diffstat (limited to 'src/server/api/streaming.ts')
| -rw-r--r-- | src/server/api/streaming.ts | 73 |
1 files changed, 7 insertions, 66 deletions
diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts index 09ec23a743..4518d21c3f 100644 --- a/src/server/api/streaming.ts +++ b/src/server/api/streaming.ts @@ -2,26 +2,12 @@ import * as http from 'http'; import * as websocket from 'websocket'; import Xev from 'xev'; -import homeStream from './stream/home'; -import localTimelineStream from './stream/local-timeline'; -import hybridTimelineStream from './stream/hybrid-timeline'; -import globalTimelineStream from './stream/global-timeline'; -import userListStream from './stream/user-list'; -import driveStream from './stream/drive'; -import messagingStream from './stream/messaging'; -import messagingIndexStream from './stream/messaging-index'; -import reversiGameStream from './stream/games/reversi-game'; -import reversiStream from './stream/games/reversi'; -import serverStatsStream from './stream/server-stats'; -import notesStatsStream from './stream/notes-stats'; -import hashtagStream from './stream/hashtag'; +import MainStreamConnection from './stream'; import { ParsedUrlQuery } from 'querystring'; import authenticate from './authenticate'; module.exports = (server: http.Server) => { - /** - * Init websocket server - */ + // Init websocket server const ws = new websocket.server({ httpServer: server }); @@ -29,20 +15,16 @@ module.exports = (server: http.Server) => { ws.on('request', async (request) => { const connection = request.accept(); - if (request.resourceURL.pathname === '/server-stats') { - serverStatsStream(request, connection); - return; - } + const ev = new Xev(); - if (request.resourceURL.pathname === '/notes-stats') { - notesStatsStream(request, connection); - return; - } + const q = request.resourceURL.query as ParsedUrlQuery; + const [user, app] = await authenticate(q.i as string); - const ev = new Xev(); + const main = new MainStreamConnection(connection, ev, user, app); connection.once('close', () => { ev.removeAllListeners(); + main.dispose(); }); connection.on('message', async (data) => { @@ -50,46 +32,5 @@ module.exports = (server: http.Server) => { connection.send('pong'); } }); - - const q = request.resourceURL.query as ParsedUrlQuery; - const [user, app] = await authenticate(q.i as string); - - if (request.resourceURL.pathname === '/games/reversi-game') { - reversiGameStream(request, connection, ev, user); - return; - } - - if (request.resourceURL.pathname === '/local-timeline') { - localTimelineStream(request, connection, ev, user); - return; - } - - if (request.resourceURL.pathname === '/hashtag') { - hashtagStream(request, connection, ev, user); - return; - } - - if (user == null) { - connection.send('authentication-failed'); - connection.close(); - return; - } - - const channel: any = - request.resourceURL.pathname === '/' ? homeStream : - request.resourceURL.pathname === '/hybrid-timeline' ? hybridTimelineStream : - request.resourceURL.pathname === '/global-timeline' ? globalTimelineStream : - request.resourceURL.pathname === '/user-list' ? userListStream : - request.resourceURL.pathname === '/drive' ? driveStream : - request.resourceURL.pathname === '/messaging' ? messagingStream : - request.resourceURL.pathname === '/messaging-index' ? messagingIndexStream : - request.resourceURL.pathname === '/games/reversi' ? reversiStream : - null; - - if (channel !== null) { - channel(request, connection, ev, user, app); - } else { - connection.close(); - } }); }; |