private void EnqueueMessage(IMessage message, [CallerMemberName] string method = null) { var serializedString = ChannelWriteHelper.FormatOutput(message, method); var queueItem = new RegisteredClientMessageQueueItem { SerializedMessage = serializedString, Message = message, Method = method }; if (ActiveConnection == null) { _pushNotificationSender?.SendNotification(queueItem.SerializedMessage); } MessageQueue.Enqueue(queueItem); }
private void OnTcpClientDisconnected(Guid oldConnectionID) { if (oldConnectionID == ConnectionId) { var itemsToSend = MessageQueue.ToList(); ActiveConnection = null; if (!IsOnline) { return; } IsOnline = false; OnDisconnected?.Invoke(this); if (_pushNotificationSender != null) { foreach (var item in itemsToSend) { _pushNotificationSender.SendNotification(item.SerializedMessage); } } } }