/// <summary> /// /// </summary> /// <param name="event"></param> /// <returns></returns> protected void OnGrpcStreamEvent(EventResponse @event) { try { var eventType = @event.Type; var payload = @event.Payload; logger.LogInformation($"dateTime:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} {eventType},PayLoad:{payload}"); if (eventType != EventType.Heartbeat) { var eventHeartbeatPayload = new EventHeartbeatPayload() { Data = $"onGrpcStreamEvent({eventType})" }; //await _localEventBus.PublishAsync(eventHeartbeatPayload); Emit(eventHeartbeatPayload); } switch (eventType) { case EventType.Unspecified: Logger.LogError("onGrpcStreamEvent() got an EventType.EVENT_TYPE_UNSPECIFIED ?"); break; case EventType.Heartbeat: Emit(JsonConvert.DeserializeObject <EventHeartbeatPayload>(payload)); break; case EventType.Message: Emit(JsonConvert.DeserializeObject <EventMessagePayload>(payload)); break; case EventType.Dong: Emit(JsonConvert.DeserializeObject <EventDongPayload>(payload)); break; case EventType.Error: Emit(JsonConvert.DeserializeObject <EventErrorPayload>(payload)); break; case EventType.Friendship: Emit(JsonConvert.DeserializeObject <EventFriendshipPayload>(payload)); break; case EventType.RoomInvite: Emit(JsonConvert.DeserializeObject <EventRoomInvitePayload>(payload)); break; case EventType.RoomJoin: Emit(JsonConvert.DeserializeObject <EventRoomJoinPayload>(payload)); break; case EventType.RoomLeave: Emit(JsonConvert.DeserializeObject <EventRoomLeavePayload>(payload)); break; case EventType.RoomTopic: Emit(JsonConvert.DeserializeObject <EventRoomTopicPayload>(payload)); break; case EventType.Scan: Emit(JsonConvert.DeserializeObject <EventScanPayload>(payload)); break; case EventType.Ready: Emit(JsonConvert.DeserializeObject <EventReadyPayload>(payload)); break; case EventType.Reset: //log.warn('PuppetHostie', 'onGrpcStreamEvent() got an EventType.EVENT_TYPE_RESET ?') // the `reset` event should be dealed not send out Emit(JsonConvert.DeserializeObject <EventResetPayload>(payload)); Logger.LogWarning("onGrpcStreamEvent() got an EventType.EVENT_TYPE_RESET ?"); break; case EventType.Login: var loginPayload = JsonConvert.DeserializeObject <EventLoginPayload>(payload); SelfId = loginPayload.ContactId; break; case EventType.Logout: SelfId = string.Empty; Emit(JsonConvert.DeserializeObject <EventLogoutPayload>(payload)); break; default: logger.LogWarning($"'eventType {eventType} unsupported! (code should not reach here)"); //throw new BusinessException($"'eventType {_event.Type.ToString()} unsupported! (code should not reach here)"); break; } } catch (Exception ex) { Logger.LogError(ex, "OnGrpcStreamEvent exception"); } }
protected async Task OnGrpcStreamEvent(EventResponse _event) { try { EventType eventType = _event.Type; string payload = _event.Payload; Console.WriteLine($"{eventType},PayLoad:{payload}"); if (eventType != EventType.Heartbeat) { EventHeartbeatPayload eventHeartbeatPayload = new EventHeartbeatPayload() { Data = $"onGrpcStreamEvent({eventType.ToString()})" }; await _localEventBus.PublishAsync(eventHeartbeatPayload); } switch (eventType) { case EventType.Unspecified: Logger.LogError("onGrpcStreamEvent() got an EventType.EVENT_TYPE_UNSPECIFIED ?"); break; case EventType.Heartbeat: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventHeartbeatPayload>(payload)); break; case EventType.Message: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventMessagePayload>(payload)); break; case EventType.Dong: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventDongPayload>(payload)); break; case EventType.Error: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventErrorPayload>(payload)); break; case EventType.Friendship: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <FriendshipPayload>(payload)); break; case EventType.RoomInvite: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventRoomInvitePayload>(payload)); break; case EventType.RoomJoin: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventRoomJoinPayload>(payload)); break; case EventType.RoomLeave: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventRoomLeavePayload>(payload)); break; case EventType.RoomTopic: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventRoomTopicPayload>(payload)); break; case EventType.Scan: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventScanPayload>(payload)); break; case EventType.Ready: await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventReadyPayload>(payload)); break; case EventType.Reset: //await _localEventBus.PublishAsync(JsonConvert.DeserializeObject<EventResetPayload>(payload)); //log.warn('PuppetHostie', 'onGrpcStreamEvent() got an EventType.EVENT_TYPE_RESET ?') // the `reset` event should be dealed not send out Logger.LogWarning("onGrpcStreamEvent() got an EventType.EVENT_TYPE_RESET ?"); break; case EventType.Login: var loginPayload = JsonConvert.DeserializeObject <EventLoginPayload>(payload); selfId = loginPayload.ContactId; await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventLoginPayload>(payload)); break; case EventType.Logout: selfId = string.Empty; await _localEventBus.PublishAsync(JsonConvert.DeserializeObject <EventLogoutPayload>(payload)); break; //default: // Console.WriteLine($"'eventType {_event.Type.ToString()} unsupported! (code should not reach here)"); // //throw new BusinessException($"'eventType {_event.Type.ToString()} unsupported! (code should not reach here)"); // break; } } catch (Exception ex) { Console.WriteLine(ex.StackTrace); Logger.LogError(ex, "OnGrpcStreamEvent exception"); } }
public virtual bool Emit(EventHeartbeatPayload payload) => Emit("heartbeat", payload);
private void FeedDog(EventHeartbeatPayload payload) => Watchdog.Feed(payload);