public void ThenPresenceShouldReturnReceivedMessage()
        {
            receivedFlag1 = false;
            ThreadPool.QueueUserWorkItem((s) =>
                {
                    Pubnub pubnub = new Pubnub("demo", "demo", "", "", false);
                    string channel = "my/channel";

                    pubnub.presence<string>(channel, ThenPresenceShouldReturnMessage);

                    //since presence expects from stimulus from sub/unsub...
                    pubnub.subscribe<string>(channel, DummyMethodForSubscribe);
                    manualEvent1.WaitOne(2000);

                    pubnub.unsubscribe<string>(channel, DummyMethodForUnSubscribe);
                    manualEvent3.WaitOne(2000);

                    manualEvent2.WaitOne(310 * 1000);
                    Deployment.Current.Dispatcher.BeginInvoke(() =>
                       {
                           Assert.IsTrue(receivedFlag1, "Presence message not received");
                           TestComplete();
                       });
                });
        }
        internal static void PresenceDemo()
        {
            Pubnub pubnub = new Pubnub(
                        "demo",
                        "demo",
                        "",
                        "",
                        false);

            string channel = "my_channel";

            Console.WriteLine("Presence_Example");

            pubnub.presence(channel, DisplayReturnMessage);

            bool pre_unsub = false;
            while (!pre_unsub)
            {
                Console.WriteLine("Enter y for Presence-Unsub; x to EXIT presence loop");
                string userchoice = Console.ReadLine();
                if (userchoice.ToLower() == "y")
                {
                    Console.WriteLine("PresenceUnsubscribe_Example");
                    pubnub.presence_unsubscribe(channel, DisplayReturnMessage);

                    pre_unsub = true;
                }
                else if (userchoice.ToLower() == "x")
                {
                    pre_unsub = true;
                }
            }
        }
示例#3
0
        internal static void PresenceDemo()
        {
            Pubnub pubnub = new Pubnub(
                "demo",
                "demo",
                "",
                "",
                false);

            string channel = "my_channel";

            Console.WriteLine("Presence_Example");

            pubnub.presence(channel, DisplayReturnMessage);

            bool pre_unsub = false;

            while (!pre_unsub)
            {
                Console.WriteLine("Enter y for Presence-Unsub; x to EXIT presence loop");
                string userchoice = Console.ReadLine();
                if (userchoice.ToLower() == "y")
                {
                    Console.WriteLine("PresenceUnsubscribe_Example");
                    pubnub.presence_unsubscribe(channel, DisplayReturnMessage);

                    pre_unsub = true;
                }
                else if (userchoice.ToLower() == "x")
                {
                    pre_unsub = true;
                }
            }
        }
示例#4
0
 static void Presence_Example()
 {
     pubnub.CIPHER_KEY       = "";
     pubnub.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
     {
         if (e.PropertyName == "ReturnMessage")
         {
             Console.WriteLine("\n********** Presence Messages ********** ");
             MessageFeeder(((Pubnub)sender).ReturnMessage);
         }
     };
     pubnub.presence(channel);
 }
示例#5
0
        public static void Presence_Example()
        {
            Pubnub pubnub = new Pubnub(
                "demo",
                "demo",
                "",
                "",
                false);
            string channel = "hello_world";

            deliveryStatus = false;

            pubnub.presence(channel, DisplayReturnMessage);
            Pubnub pubnub2 = new Pubnub(
                "demo",
                "demo",
                "",
                "",
                false);

            pubnub2.subscribe(channel, DisplayReturnMessage);

            bool bStop = false;

            while (!bStop)
            {
                if (objResponse != null)
                {
                    IList <object> fields = objResponse as IList <object>;

                    if (fields [0] != null)
                    {
                        var         myObjectArray = (from item in fields select item as object).ToArray();
                        IEnumerable enumerable    = myObjectArray [0] as IEnumerable;
                        if (enumerable != null)
                        {
                            foreach (object element in enumerable)
                            {
                                Console.WriteLine("Resp:" + element.ToString());
                                //bStop = true;
                            }
                        }
                    }
                }
            }
        }
示例#6
0
        static void Presence_Example()
        {
            Pubnub pubnub = new Pubnub(
                "demo",
                "demo",
                "",
                false);
            string channel = "hello_world";

            pubnub.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                if (e.PropertyName == "ReturnMessage")
                {
                    Console.WriteLine("\n********** Presence Messages ********** ");
                    MessageFeeder(((Pubnub)sender).ReturnMessage);
                }
            };
            pubnub.presence(channel);
        }
        public void ThenItShouldReturnReceivedMessage()
        {
            Pubnub pubnub = new Pubnub(
                "demo",
                "demo",
                "",
                "",
                false
            );
            string channel = "hello_world";
            Common cm = new Common();
            cm.deliveryStatus = false;
            cm.objResponse = null;

            PubnubUnitTest unitTest = new PubnubUnitTest();
            unitTest.TestClassName = "WhenAClientIsPresented";
            unitTest.TestCaseName = "ThenPresenceShouldReturnReceivedMessage";
            pubnub.PubnubUnitTest = unitTest;

            pubnub.presence(channel, cm.DisplayReturnMessage);
            //while (!cm.deliveryStatus) ;
            //cm.objResponse = null;
            pubnub.subscribe(channel, cm.DisplayReturnMessageDummy);
            while (!cm.deliveryStatus) ;

            string strResponse = "";
            if (cm.objResponse.Equals (null)) {
                Assert.Fail("Null response");
            }
            else
            {
                IList<object> fields = cm.objResponse as IList<object>;
                foreach (object item in fields)
                {
                    strResponse = item.ToString();
                    Console.WriteLine("Resp:" + strResponse);
                    //Assert.IsNotEmpty(strResponse);
                }
                Assert.AreEqual("hello_world", fields[2]);
            }
        }
示例#8
0
        static void Presence_Example()
        {
            Pubnub pubnub = new Pubnub(
                    "demo",
                    "demo",
                    "",
                    false);
            string channel = "hello_world";

            pubnub.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                if (e.PropertyName == "ReturnMessage")
                {
                    Console.WriteLine("\n********** Presence Messages ********** ");
                    MessageFeeder(((Pubnub)sender).ReturnMessage);
                }
            };
            pubnub.presence(channel);
        }
示例#9
0
        static public void Main()
        {
            Console.WriteLine("HINT: TO TEST RE-CONNECT AND CATCH-UP,");
            Console.WriteLine("      DISCONNECT YOUR MACHINE FROM NETWORK/INTERNET AND ");
            Console.WriteLine("      RE-CONNECT YOUR MACHINE AFTER SOMETIME.");
            Console.WriteLine();
            Console.WriteLine("      IF NO NETWORK BEFORE MAX RE-TRY CONNECT,");
            Console.WriteLine("      NETWORK ERROR MESSAGE WILL BE SENT");
            Console.WriteLine();

            Console.WriteLine("ENTER Channel Name");
            channel = Console.ReadLine();

            Console.WriteLine(string.Format("Channel = {0}",channel));
            Console.WriteLine();

            Console.WriteLine("Enable SSL? ENTER Y for Yes, else N");
            string enableSSL = Console.ReadLine();
            if (enableSSL.Trim().ToLower() == "y")
            {
                Console.WriteLine("SSL Enabled");
            }
            else
            {
                Console.WriteLine("SSL NOT Enabled");
            }
            Console.WriteLine();

            Console.WriteLine("ENTER cipher key for encryption feature.");
            Console.WriteLine("If you don't want to avail at this time, press ENTER.");
            string cipheryKey = Console.ReadLine();
            if (cipheryKey.Trim().Length > 0)
            {
                Console.WriteLine("Cipher key provided.");
            }
            else
            {
                Console.WriteLine("No Cipher key provided");
            }
            Console.WriteLine();

            pubnub = new Pubnub("demo", "demo", "", cipheryKey,
                (enableSSL.Trim().ToLower() == "y") ? true : false);

            Console.WriteLine("ENTER 1 FOR Subscribe (not implementing connectCallback)");
            Console.WriteLine("ENTER 2 FOR Subscribe (implementing connectCallback)");
            Console.WriteLine("ENTER 3 FOR Publish");
            Console.WriteLine("ENTER 4 FOR Presence");
            Console.WriteLine("ENTER 5 FOR Detailed History");
            Console.WriteLine("ENTER 6 FOR Here_Now");
            Console.WriteLine("ENTER 7 FOR Unsubscribe");
            Console.WriteLine("ENTER 8 FOR Presence-Unsubscribe");
            Console.WriteLine("ENTER 9 FOR Time");
            Console.WriteLine("ENTER 0 FOR EXIT OR QUIT");

            bool exitFlag = false;

            Console.WriteLine("");
            while (!exitFlag)
            {
                string userinput = Console.ReadLine();
                switch (userinput)
                {
                    case "0":
                        exitFlag = true;
                        break;
                    case "1":
                        Console.WriteLine("Running subscribe() (not implementing connectCallback)");
                        pubnub.subscribe<string>(channel, DisplayReturnMessage);
                        //System.Threading.Tasks.Task subtask = System.Threading.Tasks.Task.Factory.StartNew(() => pubnub.subscribe<string>(channel, DisplayReturnMessage));
                        //pubnub.subscribe<object>(channel, DisplayReturnMessage);
                        //pubnub.subscribe(channel, DisplayReturnMessage);
                        break;
                    case "2":
                        Console.WriteLine("Running subscribe() (implementing connectCallback)");
                        pubnub.subscribe<string>(channel, DisplayReturnMessage, DisplayConnectStatusMessage);
                        //System.Threading.Tasks.Task subtask = System.Threading.Tasks.Task.Factory.StartNew(() => pubnub.subscribe<string>(channel, DisplayReturnMessage));
                        //pubnub.subscribe<object>(channel, DisplayReturnMessage);
                        //pubnub.subscribe(channel, DisplayReturnMessage);
                        break;
                    case "3":
                        Console.WriteLine("Running publish()");
                        Console.WriteLine("Enter the message for publish. To exit loop, enter QUIT");
                        string publishMsg = Console.ReadLine();
                        double doubleData;
                        int intData;
                        if (int.TryParse(publishMsg, out intData))
                        {
                            pubnub.publish<string>(channel, intData, DisplayReturnMessage);
                        }
                        else if (double.TryParse(publishMsg, out doubleData))
                        {
                            pubnub.publish<string>(channel, doubleData, DisplayReturnMessage);
                        }
                        else
                        {
                            //check whether any numeric is sent in double quotes
                            if (publishMsg.IndexOf("\"") == 0 && publishMsg.LastIndexOf("\"") == publishMsg.Length - 1)
                            {
                                string strMsg = publishMsg.Substring(1, publishMsg.Length - 2);
                                if (int.TryParse(strMsg, out intData))
                                {
                                    pubnub.publish<string>(channel, strMsg, DisplayReturnMessage);
                                }
                                else if (double.TryParse(strMsg, out doubleData))
                                {
                                    pubnub.publish<string>(channel, strMsg, DisplayReturnMessage);
                                }
                                else
                                {
                                    pubnub.publish<string>(channel, publishMsg, DisplayReturnMessage);
                                }
                            }
                            else
                            {
                                pubnub.publish<string>(channel, publishMsg, DisplayReturnMessage);
                            }
                        }
                        break;
                    case "4":
                        Console.WriteLine("Running presence()");
                        pubnub.presence<string>(channel, DisplayReturnMessage);
                        //System.Threading.Tasks.Task pretask = System.Threading.Tasks.Task.Factory.StartNew(() => pubnub.presence<string>(channel, DisplayReturnMessage));
                        //pubnub.presence<object>(channel, DisplayReturnMessage);
                        break;
                    case "5":
                        Console.WriteLine("Running detailed history()");
                        pubnub.detailedHistory<string>(channel, 100, DisplayReturnMessage);
                        //pubnub.detailedHistory<object>(channel, 100, DisplayReturnMessage);
                        break;
                    case "6":
                        Console.WriteLine("Running Here_Now()");
                        pubnub.here_now<string>(channel, DisplayReturnMessage);
                        //pubnub.here_now<object>(channel, DisplayReturnMessage);
                        break;
                    case "7":
                        Console.WriteLine("Running unsubscribe()");
                        pubnub.unsubscribe<string>(channel, DisplayReturnMessage);
                        //pubnub.unsubscribe<object>(channel, DisplayReturnMessage);
                        break;
                    case "8":
                        Console.WriteLine("Running presence-unsubscribe()");
                        pubnub.presence_unsubscribe<string>(channel, DisplayReturnMessage);
                        break;
                    case "9":
                        Console.WriteLine("Running time()");
                        pubnub.time<string>(DisplayReturnMessage);
                        break;
                    default:
                        Console.WriteLine("INVALID CHOICE.");
                        break;
                }
            }

            Console.WriteLine("\nPress any key to confirm exit.\n\n");
            Console.ReadLine();

        }
示例#10
0
        static public void Main()
        {
            Console.WriteLine("HINT: TO TEST RE-CONNECT AND CATCH-UP,");
            Console.WriteLine("      DISCONNECT YOUR MACHINE FROM NETWORK/INTERNET AND ");
            Console.WriteLine("      RE-CONNECT YOUR MACHINE AFTER SOMETIME.");
            Console.WriteLine();
            Console.WriteLine("      IF NO NETWORK BEFORE MAX RE-TRY CONNECT,");
            Console.WriteLine("      NETWORK ERROR MESSAGE WILL BE SENT");
            Console.WriteLine();

            Console.WriteLine("ENTER Channel Name");
            channel = Console.ReadLine();

            Console.WriteLine(string.Format("Channel = {0}", channel));
            Console.WriteLine();

            Console.WriteLine("Enable SSL? ENTER Y for Yes, else N");
            string enableSSL = Console.ReadLine();

            if (enableSSL.Trim().ToLower() == "y")
            {
                Console.WriteLine("SSL Enabled");
            }
            else
            {
                Console.WriteLine("SSL NOT Enabled");
            }
            Console.WriteLine();

            Console.WriteLine("ENTER cipher key for encryption feature.");
            Console.WriteLine("If you don't want to avail at this time, press ENTER.");
            string cipheryKey = Console.ReadLine();

            if (cipheryKey.Trim().Length > 0)
            {
                Console.WriteLine("Cipher key provided.");
            }
            else
            {
                Console.WriteLine("No Cipher key provided");
            }
            Console.WriteLine();

            pubnub = new Pubnub("demo", "demo", "", cipheryKey,
                                (enableSSL.Trim().ToLower() == "y") ? true : false);

            Console.WriteLine("ENTER 1 FOR Subscribe");
            Console.WriteLine("ENTER 2 FOR Publish");
            Console.WriteLine("ENTER 3 FOR Presence");
            Console.WriteLine("ENTER 4 FOR Detailed History");
            Console.WriteLine("ENTER 5 FOR Here_Now");
            Console.WriteLine("ENTER 6 FOR Unsubscribe");
            Console.WriteLine("ENTER 7 FOR Presence-Unsubscribe");
            Console.WriteLine("ENTER 8 FOR Time");
            Console.WriteLine("ENTER 0 FOR EXIT OR QUIT");

            bool exitFlag = false;

            Console.WriteLine("");
            while (!exitFlag)
            {
                string userinput = Console.ReadLine();
                switch (userinput)
                {
                case "0":
                    exitFlag = true;
                    break;

                case "1":
                    Console.WriteLine("Running subscribe()");
                    pubnub.subscribe <string>(channel, DisplayReturnMessage);
                    //System.Threading.Tasks.Task subtask = System.Threading.Tasks.Task.Factory.StartNew(() => pubnub.subscribe<string>(channel, DisplayReturnMessage));
                    //pubnub.subscribe<object>(channel, DisplayReturnMessage);
                    //pubnub.subscribe(channel, DisplayReturnMessage);
                    break;

                case "2":
                    Console.WriteLine("Running publish()");
                    Console.WriteLine("Enter the message for publish. To exit loop, enter QUIT");
                    string publishMsg = Console.ReadLine();
                    pubnub.publish <string>(channel, publishMsg, DisplayReturnMessage);
                    break;

                case "3":
                    Console.WriteLine("Running presence()");
                    pubnub.presence <string>(channel, DisplayReturnMessage);
                    //System.Threading.Tasks.Task pretask = System.Threading.Tasks.Task.Factory.StartNew(() => pubnub.presence<string>(channel, DisplayReturnMessage));
                    //pubnub.presence<object>(channel, DisplayReturnMessage);
                    break;

                case "4":
                    Console.WriteLine("Running detailed history()");
                    pubnub.detailedHistory <string>(channel, 100, DisplayReturnMessage);
                    //pubnub.detailedHistory<object>(channel, 100, DisplayReturnMessage);
                    break;

                case "5":
                    Console.WriteLine("Running Here_Now()");
                    pubnub.here_now <string>(channel, DisplayReturnMessage);
                    //pubnub.here_now<object>(channel, DisplayReturnMessage);
                    break;

                case "6":
                    Console.WriteLine("Running unsubscribe()");
                    pubnub.unsubscribe <string>(channel, DisplayReturnMessage);
                    //pubnub.unsubscribe<object>(channel, DisplayReturnMessage);
                    break;

                case "7":
                    Console.WriteLine("Running presence-unsubscribe()");
                    pubnub.presence_unsubscribe <string>(channel, DisplayReturnMessage);
                    break;

                case "8":
                    Console.WriteLine("Running time()");
                    pubnub.time <string>(DisplayReturnMessage);
                    break;

                default:
                    Console.WriteLine("INVALID CHOICE.");
                    break;
                }
            }

            Console.WriteLine("\nPress any key to confirm exit.\n\n");
            Console.ReadLine();
        }
示例#11
0
 private void Presence_Click(object sender, RoutedEventArgs e)
 {
     Console.WriteLine("Running presence()");
     pubnub.presence <string>(channel, DisplayReturnMessage);
 }
示例#12
0
        static public void Main()
        {
            Console.WriteLine("HINT: TO TEST RE-CONNECT AND CATCH-UP,");
            Console.WriteLine("      DISCONNECT YOUR MACHINE FROM NETWORK/INTERNET AND ");
            Console.WriteLine("      RE-CONNECT YOUR MACHINE AFTER SOMETIME.");
            Console.WriteLine();
            Console.WriteLine("      IF NO NETWORK BEFORE MAX RE-TRY CONNECT,");
            Console.WriteLine("      NETWORK ERROR MESSAGE WILL BE SENT");
            Console.WriteLine();

            Console.WriteLine("ENTER Channel Name");
            channel = Console.ReadLine();

            Console.WriteLine(string.Format("Channel = {0}", channel));
            Console.WriteLine();

            Console.WriteLine("ENTER 1 FOR Subscribe");
            Console.WriteLine("ENTER 2 FOR Publish");
            Console.WriteLine("ENTER 3 FOR Presence");
            Console.WriteLine("ENTER 4 FOR Detailed History");
            Console.WriteLine("ENTER 5 FOR Here_Now");
            Console.WriteLine("ENTER 6 FOR Unsubscribe");
            Console.WriteLine("ENTER 7 FOR Presence-Unsubscribe");
            Console.WriteLine("ENTER 8 FOR Time");
            Console.WriteLine("ENTER 0 FOR EXIT OR QUIT");

            bool exitFlag = false;

            Console.WriteLine("");
            while (!exitFlag)
            {
                string userinput = Console.ReadLine();
                switch (userinput)
                {
                case "0":
                    exitFlag = true;
                    break;

                case "1":
                    Console.WriteLine("Running subscribe()");
                    pubnub.subscribe <string>(channel, DisplayReturnMessage);
                    //pubnub.subscribe<object>(channel, DisplayReturnMessage);
                    //pubnub.subscribe(channel, DisplayReturnMessage);
                    break;

                case "2":
                    Console.WriteLine("Running publish()");
                    Console.WriteLine("Enter the message for publish. To exit loop, enter QUIT");
                    string publishMsg = Console.ReadLine();
                    pubnub.publish <string>(channel, publishMsg, DisplayReturnMessage);
                    break;

                case "3":
                    Console.WriteLine("Running presence()");
                    pubnub.presence <string>(channel, DisplayReturnMessage);
                    //pubnub.presence<object>(channel, DisplayReturnMessage);
                    break;

                case "4":
                    Console.WriteLine("Running detailed history()");
                    pubnub.detailedHistory <string>(channel, 100, DisplayReturnMessage);
                    //pubnub.detailedHistory<object>(channel, 100, DisplayReturnMessage);
                    break;

                case "5":
                    Console.WriteLine("Running Here_Now()");
                    pubnub.here_now <string>(channel, DisplayReturnMessage);
                    //pubnub.here_now<object>(channel, DisplayReturnMessage);
                    break;

                case "6":
                    Console.WriteLine("Running unsubscribe()");
                    pubnub.unsubscribe <string>(channel, DisplayReturnMessage);
                    //pubnub.unsubscribe<object>(channel, DisplayReturnMessage);
                    break;

                case "7":
                    Console.WriteLine("Running presence-unsubscribe()");
                    pubnub.presence_unsubscribe <string>(channel, DisplayReturnMessage);
                    break;

                case "8":
                    Console.WriteLine("Running time()");
                    pubnub.time <string>(DisplayReturnMessage);
                    break;

                default:
                    Console.WriteLine("INVALID CHOICE.");
                    break;
                }
            }

            Console.WriteLine("\nPress any key to confirm exit.\n\n");
            Console.ReadLine();
        }
示例#13
0
 public void Presence()
 {
     Display("Running Presence");
     pubnub.presence <string>(channel, DisplayReturnMessage);
 }
示例#14
0
        public static void Presence_Example()
        {
            Pubnub pubnub = new Pubnub (
                   "demo",
                   "demo",
                   "",
                   "",
                   false);
            string channel = "hello_world";

            deliveryStatus = false;

            pubnub.presence (channel, DisplayReturnMessage);
            Pubnub pubnub2 = new Pubnub (
                   "demo",
                   "demo",
                   "",
                   "",
                   false);

            pubnub2.subscribe (channel, DisplayReturnMessage);

            bool bStop = false;
            while (!bStop) {
                if (objResponse != null) {
                    IList<object> fields = objResponse as IList<object>;

                    if (fields [0] != null)
                    {
                         var myObjectArray = (from item in fields select item as object).ToArray ();
                        IEnumerable enumerable = myObjectArray [0] as IEnumerable;
                        if (enumerable != null) {
                            foreach (object element in enumerable)
                            {
                                Console.WriteLine ("Resp:" + element.ToString ());
                                //bStop = true;
                            }
                        }
                    }
                }
            }
        }
示例#15
0
        static void Presence_Example()
        {
            Pubnub pubnub = new Pubnub(
                    "demo",
                    "demo",
                    "",
                    false);
            string channel = "my/channel";

            pubnub.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
            {
                if (e.PropertyName == "ReturnMessage")
                {
                    Dictionary<string, object> _message = (Dictionary<string, object>)(((Pubnub)sender).ReturnMessage);
                    Console.WriteLine("Received Message -> '" + _message["text"] + "'");
                }
            };
            pubnub.presence(channel);
        }
示例#16
0
        static public void Main()
        {
            Console.WriteLine("HINT: TO TEST RE-CONNECT AND CATCH-UP,");
            Console.WriteLine("      DISCONNECT YOUR MACHINE FROM NETWORK/INTERNET AND ");
            Console.WriteLine("      RE-CONNECT YOUR MACHINE AFTER SOMETIME.");
            Console.WriteLine();
            Console.WriteLine("      IF NO NETWORK BEFORE MAX RE-TRY CONNECT,");
            Console.WriteLine("      NETWORK ERROR MESSAGE WILL BE SENT");
            Console.WriteLine();

            Console.WriteLine("ENTER Channel Name");
            channel = Console.ReadLine();

            Console.WriteLine(string.Format("Channel = {0}", channel));
            Console.WriteLine();

            Console.WriteLine("Enable SSL? ENTER Y for Yes, else N");
            string enableSSL = Console.ReadLine();

            if (enableSSL.Trim().ToLower() == "y")
            {
                Console.WriteLine("SSL Enabled");
            }
            else
            {
                Console.WriteLine("SSL NOT Enabled");
            }
            Console.WriteLine();

            Console.WriteLine("ENTER cipher key for encryption feature.");
            Console.WriteLine("If you don't want to avail at this time, press ENTER.");
            string cipheryKey = Console.ReadLine();

            if (cipheryKey.Trim().Length > 0)
            {
                Console.WriteLine("Cipher key provided.");
            }
            else
            {
                Console.WriteLine("No Cipher key provided");
            }
            Console.WriteLine();

            pubnub = new Pubnub("demo", "demo", "", cipheryKey,
                                (enableSSL.Trim().ToLower() == "y") ? true : false);

            Console.WriteLine("ENTER 1 FOR Subscribe (not implementing connectCallback)");
            Console.WriteLine("ENTER 2 FOR Subscribe (implementing connectCallback)");
            Console.WriteLine("ENTER 3 FOR Publish");
            Console.WriteLine("ENTER 4 FOR Presence");
            Console.WriteLine("ENTER 5 FOR Detailed History");
            Console.WriteLine("ENTER 6 FOR Here_Now");
            Console.WriteLine("ENTER 7 FOR Unsubscribe");
            Console.WriteLine("ENTER 8 FOR Presence-Unsubscribe");
            Console.WriteLine("ENTER 9 FOR Time");
            Console.WriteLine("ENTER 0 FOR EXIT OR QUIT");

            bool exitFlag = false;

            Console.WriteLine("");
            while (!exitFlag)
            {
                string userinput = Console.ReadLine();
                switch (userinput)
                {
                case "0":
                    exitFlag = true;
                    pubnub.EndPendingRequests();
                    break;

                case "1":
                    Console.WriteLine("Running subscribe() (not implementing connectCallback)");
                    pubnub.subscribe <string>(channel, DisplayReturnMessage);
                    break;

                case "2":
                    Console.WriteLine("Running subscribe() (implementing connectCallback)");
                    pubnub.subscribe <string>(channel, DisplayReturnMessage, DisplayConnectStatusMessage);
                    break;

                case "3":
                    Console.WriteLine("Running publish()");
                    Console.WriteLine("Enter the message for publish. To exit loop, enter QUIT");
                    string publishMsg = Console.ReadLine();
                    double doubleData;
                    int    intData;
                    if (int.TryParse(publishMsg, out intData))                     //capture numeric data
                    {
                        pubnub.publish <string>(channel, intData, DisplayReturnMessage);
                    }
                    else if (double.TryParse(publishMsg, out doubleData))                     //capture numeric data
                    {
                        pubnub.publish <string>(channel, doubleData, DisplayReturnMessage);
                    }
                    else
                    {
                        //check whether any numeric is sent in double quotes
                        if (publishMsg.IndexOf("\"") == 0 && publishMsg.LastIndexOf("\"") == publishMsg.Length - 1)
                        {
                            string strMsg = publishMsg.Substring(1, publishMsg.Length - 2);
                            if (int.TryParse(strMsg, out intData))
                            {
                                pubnub.publish <string>(channel, strMsg, DisplayReturnMessage);
                            }
                            else if (double.TryParse(strMsg, out doubleData))
                            {
                                pubnub.publish <string>(channel, strMsg, DisplayReturnMessage);
                            }
                            else
                            {
                                pubnub.publish <string>(channel, publishMsg, DisplayReturnMessage);
                            }
                        }
                        else
                        {
                            pubnub.publish <string>(channel, publishMsg, DisplayReturnMessage);
                        }
                    }
                    break;

                case "4":
                    Console.WriteLine("Running presence()");
                    pubnub.presence <string>(channel, DisplayReturnMessage);
                    break;

                case "5":
                    Console.WriteLine("Running detailed history()");
                    pubnub.detailedHistory <string>(channel, 100, DisplayReturnMessage);
                    break;

                case "6":
                    Console.WriteLine("Running Here_Now()");
                    pubnub.here_now <string>(channel, DisplayReturnMessage);
                    break;

                case "7":
                    Console.WriteLine("Running unsubscribe()");
                    pubnub.unsubscribe <string>(channel, DisplayReturnMessage);
                    break;

                case "8":
                    Console.WriteLine("Running presence-unsubscribe()");
                    pubnub.presence_unsubscribe <string>(channel, DisplayReturnMessage);
                    break;

                case "9":
                    Console.WriteLine("Running time()");
                    pubnub.time <string>(DisplayReturnMessage);
                    break;

                default:
                    Console.WriteLine("INVALID CHOICE.");
                    break;
                }
            }

            Console.WriteLine("\nPress any key to exit.\n\n");
            Console.ReadLine();
        }