feat: handle grpc events

This commit is contained in:
Adam Shiervani 2025-11-20 14:40:37 +01:00
parent 78cef12c97
commit e694827eb9
1 changed files with 12 additions and 14 deletions

View File

@ -79,6 +79,18 @@ func NewGRPCClient(opts grpcClientOptions) (*GRPCClient, error) {
// Start event stream // Start event stream
go grpcClient.startEventStream() go grpcClient.startEventStream()
// Start event handler to process events from the channel
go func() {
for {
select {
case event := <-grpcClient.eventCh:
grpcClient.handleEvent(event)
case <-grpcClient.eventDone:
return
}
}
}()
return grpcClient, nil return grpcClient, nil
} }
@ -234,20 +246,6 @@ func (c *GRPCClient) handleEvent(event *pb.Event) {
} }
} }
// OnEvent registers an event handler
func (c *GRPCClient) OnEvent(eventType string, handler func(data interface{})) {
go func() {
for {
select {
case event := <-c.eventCh:
c.handleEvent(event)
case <-c.eventDone:
return
}
}
}()
}
// Close closes the gRPC client // Close closes the gRPC client
func (c *GRPCClient) Close() error { func (c *GRPCClient) Close() error {
c.closeM.Lock() c.closeM.Lock()