private void KeepAliveCallback(object sender, ElapsedEventArgs elapsedEventArgs)
        {
            if (!IsConnected || _isDisposed)
            {
                return;
            }

            try
            {
                byte[] keepAliveBytes = PacketProtocol <TMessageType> .WrapKeepaliveMessage();

                _socket.BeginSend(keepAliveBytes, 0, keepAliveBytes.Length, 0, new AsyncCallback(SendCallback), _socket);
            }
            catch (SocketException e)
            {
                OnDisconnect(e);
            }
        }
 public void SendKeepAlivePacket()
 {
     Send(PacketProtocol.WrapKeepaliveMessage());
 }