mirror of https://github.com/jetkvm/kvm.git
feat: handle grpc events
This commit is contained in:
parent
78cef12c97
commit
e694827eb9
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue