summaryrefslogtreecommitdiff
path: root/src/server/api/stream/channel.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/stream/channel.ts')
-rw-r--r--src/server/api/stream/channel.ts14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/server/api/stream/channel.ts b/src/server/api/stream/channel.ts
new file mode 100644
index 0000000000..cb04278237
--- /dev/null
+++ b/src/server/api/stream/channel.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): void {
+ const q = request.resourceURL.query as ParsedUrlQuery;
+ const channel = q.channel;
+
+ // Subscribe channel stream
+ subscriber.subscribe(`misskey:channel-stream:${channel}`);
+ subscriber.on('message', (_, data) => {
+ connection.send(data);
+ });
+}