diff options
Diffstat (limited to 'src/server/api/stream/channel.ts')
| -rw-r--r-- | src/server/api/stream/channel.ts | 14 |
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); + }); +} |