sse support
This commit is contained in:
@@ -150,8 +150,7 @@ func runAuthProcesses(ctx context.Context, auth *authentication.Authenticator) <
|
||||
}
|
||||
|
||||
func runServer(ctx context.Context, logger *logging.Logger, connPool *pgxpool.Pool, auth *authentication.Authenticator) <-chan error {
|
||||
r := server.Router(
|
||||
ctx,
|
||||
r := server.NewRouter(
|
||||
logger.WithGroup("server"),
|
||||
"./",
|
||||
raw_events.NewStore(logger.WithGroup("raw-event-store"), connPool),
|
||||
@@ -190,6 +189,18 @@ func runServer(ctx context.Context, logger *logging.Logger, connPool *pgxpool.Po
|
||||
}
|
||||
}()
|
||||
|
||||
sseErrCh := make(chan error, 1)
|
||||
go func() {
|
||||
defer close(sseErrCh)
|
||||
defer cancel()
|
||||
defer logger.Info("server side events stopped")
|
||||
|
||||
logger.Info("server side events streaming...")
|
||||
if err := r.RunSSE(ctx); err != nil {
|
||||
sseErrCh <- err
|
||||
}
|
||||
}()
|
||||
|
||||
shutdownErrCh := make(chan error, 1)
|
||||
go func() {
|
||||
defer close(shutdownErrCh)
|
||||
@@ -212,8 +223,9 @@ func runServer(ctx context.Context, logger *logging.Logger, connPool *pgxpool.Po
|
||||
defer close(errCh)
|
||||
|
||||
err1 := <-runningErrCh
|
||||
err2 := <-shutdownErrCh
|
||||
if err := errors.Join(err1, err2); err != nil {
|
||||
err2 := <-sseErrCh
|
||||
err3 := <-shutdownErrCh
|
||||
if err := errors.Join(err1, err2, err3); err != nil {
|
||||
errCh <- err
|
||||
}
|
||||
}()
|
||||
|
||||
Reference in New Issue
Block a user