From e694827eb967047c65f2d3b623d71ffde5696c71 Mon Sep 17 00:00:00 2001 From: Adam Shiervani Date: Thu, 20 Nov 2025 14:40:37 +0100 Subject: [PATCH] feat: handle grpc events --- internal/native/grpc_client.go | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/internal/native/grpc_client.go b/internal/native/grpc_client.go index 300a2284..85a3201b 100644 --- a/internal/native/grpc_client.go +++ b/internal/native/grpc_client.go @@ -79,6 +79,18 @@ func NewGRPCClient(opts grpcClientOptions) (*GRPCClient, error) { // Start event stream 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 } @@ -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 func (c *GRPCClient) Close() error { c.closeM.Lock()