From e323a930bff2c3a7d6b591e0bdcd092a5ed60f18 Mon Sep 17 00:00:00 2001 From: darrinsmart Date: Sat, 11 Mar 2023 02:10:58 -0800 Subject: [feature] Support multiple subscriptions on single websocket connection (#1489) - Allow Oauth authentication on websocket endpoint - Make streamType query parameter optional - Read websocket commands from client and update subscriptions --- internal/processing/stream/open.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'internal/processing/stream/open.go') diff --git a/internal/processing/stream/open.go b/internal/processing/stream/open.go index 10d01a767..823efa182 100644 --- a/internal/processing/stream/open.go +++ b/internal/processing/stream/open.go @@ -45,9 +45,17 @@ func (p *Processor) Open(ctx context.Context, account *gtsmodel.Account, streamT return nil, gtserror.NewErrorInternalError(fmt.Errorf("error generating stream id: %s", err)) } + // Each stream can be subscibed to multiple timelines. + // Record them in a set, and include the initial one + // if it was given to us + timelines := map[string]bool{} + if streamTimeline != "" { + timelines[streamTimeline] = true + } + thisStream := &stream.Stream{ ID: streamID, - Timeline: streamTimeline, + Timelines: timelines, Messages: make(chan *stream.Message, 100), Hangup: make(chan interface{}, 1), Connected: true, -- cgit v1.2.3