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
|
||||
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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue