/// <summary>
 /// The listener starts to wait for messsages from the miniserver
 /// </summary>
 private void BeginListening()
 {
     if (Listener != null)
     {
         TokenSource.Cancel();
         Listener = null;
     }
     Listener = Task.Run(async() => {
         while (WebSocket.State == WebSocketState.Open)
         {
             WebserviceResponse response = await ReceiveWebsocketMessage(1024, TokenSource.Token);
             if (!HandleWebserviceResponse(response) && !ParseEventTable(response.Content, response.Header.Type))
             {
                 OnReceiveMessge?.BeginInvoke(WebSocket, new MessageReceivedEventArgs(response), null, null);
             }
             await Task.Delay(10);
         }
     }, TokenSource.Token);
 }