summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-26 11:02:15 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-26 11:02:15 +0900
commit3972e98f74cd8f31da013ed4e4e16b0d65435647 (patch)
treecfd0019b8315bf4a0dfd22d4e58ba7c0c1b3a10b /src
parentwip (diff)
downloadsharkey-3972e98f74cd8f31da013ed4e4e16b0d65435647.tar.gz
sharkey-3972e98f74cd8f31da013ed4e4e16b0d65435647.tar.bz2
sharkey-3972e98f74cd8f31da013ed4e4e16b0d65435647.zip
wip
Diffstat (limited to 'src')
-rw-r--r--src/server/api/stream/user-list.ts14
-rw-r--r--src/server/api/streaming.ts2
2 files changed, 16 insertions, 0 deletions
diff --git a/src/server/api/stream/user-list.ts b/src/server/api/stream/user-list.ts
new file mode 100644
index 0000000000..ba03b97860
--- /dev/null
+++ b/src/server/api/stream/user-list.ts
@@ -0,0 +1,14 @@
+import * as websocket from 'websocket';
+import * as redis from 'redis';
+import { ParsedUrlQuery } from 'querystring';
+
+export default function(request: websocket.request, connection: websocket.connection, subscriber: redis.RedisClient, user: any): void {
+ const q = request.resourceURL.query as ParsedUrlQuery;
+ const listId = q.listId as string;
+
+ // Subscribe stream
+ subscriber.subscribe(`misskey:user-list-stream:${listId}`);
+ subscriber.on('message', (_, data) => {
+ connection.send(data);
+ });
+}
diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts
index ce13253649..e4884ed7c4 100644
--- a/src/server/api/streaming.ts
+++ b/src/server/api/streaming.ts
@@ -6,6 +6,7 @@ import config from '../../config';
import homeStream from './stream/home';
import localTimelineStream from './stream/local-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';
@@ -70,6 +71,7 @@ module.exports = (server: http.Server) => {
request.resourceURL.pathname === '/' ? homeStream :
request.resourceURL.pathname === '/local-timeline' ? localTimelineStream :
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 :