private void SubscribeDataOK(object sender, MultipleResultEventArgs e)
        {
            foreach (JObject ele in e.FailList)
            {
                string streamName   = (string)ele["streamName"];
                int    code         = (int)ele["code"];
                string errorMessage = (string)ele["message"];
                Console.WriteLine("Subscribe stream " + streamName + " unsuccessfully." + " code: " + code + " message: " + errorMessage);
                if (this.streams.Contains(streamName))
                {
                    this.streams.Remove(streamName);
                }
            }
            Dictionary <string, JArray> header = new Dictionary <string, JArray>();

            foreach (JObject ele in e.SuccessList)
            {
                string streamName = (string)ele["streamName"];
                JArray cols       = (JArray)ele["cols"];
                header.Add(streamName, cols);
            }
            if (header.Count > 0)
            {
                OnSubscribed(this, header);
            }
            else
            {
                Console.WriteLine("No Subscribe Stream Available");
            }
        }
 private void UnSubscribeDataOK(object sender, MultipleResultEventArgs e)
 {
     foreach (JObject ele in e.SuccessList)
     {
         string streamName = (string)ele["streamName"];
         if (this.streams.Contains(streamName))
         {
             this.streams.Remove(streamName);
         }
     }
     foreach (JObject ele in e.FailList)
     {
         string streamName   = (string)ele["streamName"];
         int    code         = (int)ele["code"];
         string errorMessage = (string)ele["message"];
         Console.WriteLine("UnSubscribe stream " + streamName + " unsuccessfully." + " code: " + code + " message: " + errorMessage);
     }
 }