private async Task SendMessageAsync(string endPoint, NotificationPayload message)
        {
            byte[] toSend = message.ToByteArray();

            foreach (var session in _repository.GetSessionWithoutProducer(endPoint)) //DONT send message by yourself
            {
                await Client.SendAsync(toSend, toSend.Length, session.EndPoint);
            }
        }
        private async Task SendMessageAsync(NotificationPayload payload, bool sendToServer = true)
        {
            if (payload.Notification != Notifications.Notify || !sendToServer)
            {
                _recieveAction?.Invoke(payload);
            }

            if (payload.Notification != Notifications.Error && sendToServer)
            {
                if (Client == null)
                {
                    return;
                }

                byte[] toSend = payload.ToByteArray();

                await Client.SendAsync(toSend, toSend.Length, _remoteEndPoint);
            }
        }