Ejemplo n.º 1
0
        public void ShouldWorkWithAcks()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);


            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.Emit("ack");

            socket.On("ack", (cb) =>
            {
                var obj  = new JObject();
                obj["b"] = true;
                var iack = (IAck)cb;
                iack.Call(5, obj);
            });

            socket.On("got it",
                      (data) =>
            {
                log.Info("got it");
                ManualResetEvent.Set();
            });

            ManualResetEvent.WaitOne();
            socket.Close();
        }
Ejemplo n.º 2
0
        public void Cookie()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();
            var uri     = CreateUri();

            options.Cookies.Add("connect.sid", "12345");
            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("get_cookie");
            });

            socket.On("got_cookie",
                      (data) =>
            {
                log.Info("EVENT_MESSAGE data=" + data);
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            ManualResetEvent.WaitOne();
            socket.Close();
            var cookie = (string)events.Dequeue();

            Assert.Equal("connect.sid=12345", cookie);
        }
Ejemplo n.º 3
0
        public void ShouldReceiveDateWithAckAsAction()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            Message          = "";
            Number           = 0;
            ManualResetEvent = new ManualResetEvent(false);
            var obj = new JObject();

            obj["b"] = true;

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.Emit("getAckDate", (date, n) =>
            {
                log.Info("getAckDate data=" + date);
                Message = ((DateTime)date).ToString("O");
                Number  = int.Parse(n.ToString());
                ManualResetEvent.Set();
            }, obj);


            ManualResetEvent.WaitOne();
            Assert.Equal(28, Message.Length);
            Assert.Equal(5, Number);
            socket.Close();
        }
Ejemplo n.º 4
0
        public void ShouldWorkWithFalse()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                socket.Emit("false");
            });

            socket.On("false",
                      (data) =>
            {
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();

            Assert.False((bool)obj);
        }
Ejemplo n.º 5
0
        public void Json10000000CharsTest()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("json10000000chars");
            });

            socket.On("json10000000chars",
                      (data) =>
            {
                log.Info("EVENT_MESSAGE data=" + data);
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = (JObject)events.Dequeue();
            var str = (string)obj["data"];

            Assert.Equal(10000000, str.Length);
        }
Ejemplo n.º 6
0
        public void ShouldSendBinaryDataAsAnArraybuffer()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag             = false;

            var exptected = System.Text.Encoding.UTF8.GetBytes("asdfasdf");

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On("buffack", () =>
            {
                Flag = true;
                ManualResetEvent.Set();
            });

            socket.Emit("buffa", exptected);

            ManualResetEvent.WaitOne();
            socket.Close();
            Assert.True(Flag);
        }
Ejemplo n.º 7
0
        public void BuffAck()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag             = false;

            var exptected = System.Text.Encoding.UTF8.GetBytes("asdfasdf");

            var options = CreateOptions();
            //options.Transports = ImmutableList.Create<string>(Polling.NAME);
            var uri = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On("buffack", () =>
            {
                Flag = true;
                ManualResetEvent.Set();
            });

            socket.Emit("buffa", exptected);

            ManualResetEvent.WaitOne();
            //Task.Delay(8000).Wait();
            socket.Close();
            //Task.Delay(4000).Wait();
            Assert.True(Flag);
            log.Info("Finish");
        }
Ejemplo n.º 8
0
        public void ShouldEmitDateAsDate()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On("takeDate", (data) =>
            {
                log.Info("takeDate");
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            socket.Emit("getDate");

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();

            Assert.IsInstanceOfType(obj, typeof(DateTime));
        }
Ejemplo n.º 9
0
        public void Connect()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Disconnect();
            });

            socket.On(Socket.EVENT_DISCONNECT,
                      (data) =>
            {
                log.Info("EVENT_DISCONNECT");
                Message = (string)data;
                ManualResetEvent.Set();
            });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            Assert.Equal("io client disconnect", this.Message);
        }
Ejemplo n.º 10
0
        public void ShouldEmitDateInObject()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On("takeDateObj", (data) =>
            {
                log.Info("takeDate");
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            socket.Emit("getDateObj");

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = (JObject)events.Dequeue();

            Assert.IsType <JObject>(obj);
            var date = (obj["date"]).Value <DateTime>();

            Assert.IsType <DateTime>(date);
        }
        public void Connect()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Disconnect();
            });

            socket.On(Socket.EVENT_DISCONNECT,
                (data) =>
                {
                    log.Info("EVENT_DISCONNECT");
                    Message = (string) data;
                    ManualResetEvent.Set();
                });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            Assert.AreEqual("io client disconnect", this.Message);
        }
Ejemplo n.º 12
0
        public void MessageTest()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("hi");
            });

            socket.On("hi",
                      (data) =>
            {
                log.Info("EVENT_MESSAGE");
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();

            Assert.Equal("more data", obj);
        }
Ejemplo n.º 13
0
        public void ShouldGetBinaryDataAsAnArraybuffer()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On("doge", (data) =>
            {
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            socket.Emit("doge");

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();

            var binData   = (byte[])events.Dequeue();
            var exptected = System.Text.Encoding.UTF8.GetBytes("asdfasdf");
            var i         = 0;

            foreach (var b in exptected)
            {
                Assert.Equal(b, binData[i++]);
            }
        }
        public void OgsMessageTest()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("parser_error#21");
            });

            socket.On("parser_error#21_response",
                (data) =>
                {
                    log.Info("EVENT_MESSAGE");
                    events.Enqueue(data);
                    ManualResetEvent.Set();
                });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();
            Assert.Equal("{\"handicap\":0,\"disable_analysis\":false,\"private\":false,\"height\":19,\"time_control\":{\"time_control\":\"byoyomi\",\"period_time\":45,\"main_time\":1800,\"periods\":5},\"ranked\":false,\"meta_groups\":[132,3,196,261,327,489,43,418,302,463,242,403,425,24,25,154,28,157],\"komi\":6.5,\"game_id\":1333070,\"width\":19,\"rules\":\"japanese\",\"black_player_id\":71283,\"white_player_id\":78080,\"players\":{\"white\":{\"username\":\"Rvzy\",\"egf\":501.413,\"rank\":14,\"id\":78080,\"accepted_stones\":\"mcidkdldmdiekeefgfifkfdgegfghgkgfhghhhihkhnhfigihikinifjhjjjkjnjdkekfkgkhkjknkflhljlgmhmimjmgnknlnmnnngo\",\"accepted_strict_seki_mode\":false},\"black\":{\"username\":\"心の光\",\"egf\":353.454,\"rank\":12,\"id\":71283,\"accepted_stones\":\"mcidkdldmdiekeefgfifkfdgegfghgkgfhghhhihkhnhfigihikinifjhjjjkjnjdkekfkgkhkjknkflhljlgmhmimjmgnknlnmnnngo\",\"accepted_strict_seki_mode\":false}},\"game_name\":\"Friendly Match\",\"phase\":\"finished\",\"history\":[],\"initial_player\":\"black\",\"moves\":\"pddpppddfqfocqdjcpcodqepeqncqfkcfcgdcccddcfdecgcgbhbfahcbdbebccfpjnpqnjphphoioipgohngngphqfpgmilcndnbocmdoengqeocodlgkijhiiihhjgifighghfhkikekejfjelflfihjgihminimjnjmkmjlkljkkkjjliihjikjljkijhkhlgkgjfiejegfheidickfmekejdhllhfgehegdhfhedghffeffedgcgdkckfkcibmclblbkldlcmdndmcmbkdjcaeafadnfknjolnlplkllmkmmmnnmnnnkmjnjminimhnhmglfnlomolonmloonglmiqjqjrkrirmfofpbqcorproqpqopplpmqmpoqoosqppsqrqsrrrsoeneodwO6obqblaocnbpaoaqaksjsakalhafbsssr....\",\"allow_self_capture\":false,\"automatic_stone_removal\":false,\"free_handicap_placement\":false,\"allow_ko\":false,\"allow_superko\":true,\"superko_algorithm\":\"ssk\",\"score_territory\":true,\"score_territory_in_seki\":false,\"score_stones\":false,\"score_prisoners\":true,\"score_passes\":true,\"white_must_pass_last\":false,\"opponent_plays_first_after_resume\":true,\"strict_seki_mode\":false,\"initial_state\":{\"black\":\"\",\"white\":\"\"},\"start_time\":1420522348,\"clock\":{\"game_id\":1333070,\"current_player\":78080,\"black_player_id\":71283,\"white_player_id\":78080,\"title\":\"Friendly Match\",\"last_move\":1420524830517,\"expiration\":1420525270589,\"black_time\":{\"thinking_time\":909.8829999999991,\"periods\":5,\"period_time\":45},\"white_time\":{\"thinking_time\":215.07199999999966,\"periods\":5,\"period_time\":45},\"pause_delta\":-517,\"expiration_delta\":440072,\"now\":1420524830517,\"paused_since\":1420524830},\"pause_control\":{\"stone-removal\":true},\"paused_since\":1420524830,\"removed\":\"mcidkdldmdiekeefgfifkfdgegfghgkgfhghhhihkhnhfigihikinifjhjjjkjnjdkekfkgkhkjknkflhljlgmhmimjmgnknlnmnnngo\",\"auto_scoring_done\":true,\"score\":{\"white\":{\"total\":154.5,\"stones\":0,\"territory\":101,\"prisoners\":47,\"scoring_positions\":\"iajakaibjbkblbmanamckdldmdcedeeegekeledfefgfkfdgegfggghgkgfhghhhihkhdieifigihikifjgjhjjjkjdkekfkgkhkjkflglhljldmemfmgmhmimjmfngngohdidieifbfagbgahbhchaibiajbjcjknlnmnnnkolomonokpmpkqlqmqnqlrmrnrlsmsnsio\",\"handicap\":0,\"komi\":6.5},\"black\":{\"total\":101,\"stones\":0,\"territory\":94,\"prisoners\":7,\"scoring_positions\":\"aabacadaeaabbbcbdbebacrasarbsbrcscqdrdsdpeqeresepfrfsfogpgqgrgsgnhohphqhrhshnioipiqirisinjojqjrjsjnkokpkqkrkskqlrlslrmsmrnsnrosorpspqqrqsqamanbnaoapbpaqbqarbrcrdrerfrgrhrasbscsdsesfsgshsis\",\"handicap\":0,\"komi\":0}},\"winner\":78080,\"outcome\":\"53.5 points\",\"end_time\":1420524844}", obj);
        }
Ejemplo n.º 15
0
        public void OgsMessageTest()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("parser_error#21");
            });

            socket.On("parser_error#21_response",
                      (data) =>
            {
                log.Info("EVENT_MESSAGE");
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();

            Assert.Equal("{\"handicap\":0,\"disable_analysis\":false,\"private\":false,\"height\":19,\"time_control\":{\"time_control\":\"byoyomi\",\"period_time\":45,\"main_time\":1800,\"periods\":5},\"ranked\":false,\"meta_groups\":[132,3,196,261,327,489,43,418,302,463,242,403,425,24,25,154,28,157],\"komi\":6.5,\"game_id\":1333070,\"width\":19,\"rules\":\"japanese\",\"black_player_id\":71283,\"white_player_id\":78080,\"players\":{\"white\":{\"username\":\"Rvzy\",\"egf\":501.413,\"rank\":14,\"id\":78080,\"accepted_stones\":\"mcidkdldmdiekeefgfifkfdgegfghgkgfhghhhihkhnhfigihikinifjhjjjkjnjdkekfkgkhkjknkflhljlgmhmimjmgnknlnmnnngo\",\"accepted_strict_seki_mode\":false},\"black\":{\"username\":\"心の光\",\"egf\":353.454,\"rank\":12,\"id\":71283,\"accepted_stones\":\"mcidkdldmdiekeefgfifkfdgegfghgkgfhghhhihkhnhfigihikinifjhjjjkjnjdkekfkgkhkjknkflhljlgmhmimjmgnknlnmnnngo\",\"accepted_strict_seki_mode\":false}},\"game_name\":\"Friendly Match\",\"phase\":\"finished\",\"history\":[],\"initial_player\":\"black\",\"moves\":\"pddpppddfqfocqdjcpcodqepeqncqfkcfcgdcccddcfdecgcgbhbfahcbdbebccfpjnpqnjphphoioipgohngngphqfpgmilcndnbocmdoengqeocodlgkijhiiihhjgifighghfhkikekejfjelflfihjgihminimjnjmkmjlkljkkkjjliihjikjljkijhkhlgkgjfiejegfheidickfmekejdhllhfgehegdhfhedghffeffedgcgdkckfkcibmclblbkldlcmdndmcmbkdjcaeafadnfknjolnlplkllmkmmmnnmnnnkmjnjminimhnhmglfnlomolonmloonglmiqjqjrkrirmfofpbqcorproqpqopplpmqmpoqoosqppsqrqsrrrsoeneodwO6obqblaocnbpaoaqaksjsakalhafbsssr....\",\"allow_self_capture\":false,\"automatic_stone_removal\":false,\"free_handicap_placement\":false,\"allow_ko\":false,\"allow_superko\":true,\"superko_algorithm\":\"ssk\",\"score_territory\":true,\"score_territory_in_seki\":false,\"score_stones\":false,\"score_prisoners\":true,\"score_passes\":true,\"white_must_pass_last\":false,\"opponent_plays_first_after_resume\":true,\"strict_seki_mode\":false,\"initial_state\":{\"black\":\"\",\"white\":\"\"},\"start_time\":1420522348,\"clock\":{\"game_id\":1333070,\"current_player\":78080,\"black_player_id\":71283,\"white_player_id\":78080,\"title\":\"Friendly Match\",\"last_move\":1420524830517,\"expiration\":1420525270589,\"black_time\":{\"thinking_time\":909.8829999999991,\"periods\":5,\"period_time\":45},\"white_time\":{\"thinking_time\":215.07199999999966,\"periods\":5,\"period_time\":45},\"pause_delta\":-517,\"expiration_delta\":440072,\"now\":1420524830517,\"paused_since\":1420524830},\"pause_control\":{\"stone-removal\":true},\"paused_since\":1420524830,\"removed\":\"mcidkdldmdiekeefgfifkfdgegfghgkgfhghhhihkhnhfigihikinifjhjjjkjnjdkekfkgkhkjknkflhljlgmhmimjmgnknlnmnnngo\",\"auto_scoring_done\":true,\"score\":{\"white\":{\"total\":154.5,\"stones\":0,\"territory\":101,\"prisoners\":47,\"scoring_positions\":\"iajakaibjbkblbmanamckdldmdcedeeegekeledfefgfkfdgegfggghgkgfhghhhihkhdieifigihikifjgjhjjjkjdkekfkgkhkjkflglhljldmemfmgmhmimjmfngngohdidieifbfagbgahbhchaibiajbjcjknlnmnnnkolomonokpmpkqlqmqnqlrmrnrlsmsnsio\",\"handicap\":0,\"komi\":6.5},\"black\":{\"total\":101,\"stones\":0,\"territory\":94,\"prisoners\":7,\"scoring_positions\":\"aabacadaeaabbbcbdbebacrasarbsbrcscqdrdsdpeqeresepfrfsfogpgqgrgsgnhohphqhrhshnioipiqirisinjojqjrjsjnkokpkqkrkskqlrlslrmsmrnsnrosorpspqqrqsqamanbnaoapbpaqbqarbrcrdrerfrgrhrasbscsdsesfsgshsis\",\"handicap\":0,\"komi\":0}},\"winner\":78080,\"outcome\":\"53.5 points\",\"end_time\":1420524844}", obj);
        }
        public void MessageTest()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("hi");
            });

            socket.On("hi",
                (data) =>
                {
                    log.Info("EVENT_MESSAGE");
                    events.Enqueue(data);
                    ManualResetEvent.Set();
                });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();
            Assert.Equal("more data", obj);
        }
Ejemplo n.º 17
0
 public void Desconectar()
 {
     try
     {
         socket.Disconnect();
         socket.Close();
     }
     catch { }
 }
Ejemplo n.º 18
0
        /// <summary>
        /// Disconnect from Octoblu
        /// </summary>
        public void Disconnect()
        {
            Trace.WriteLine("OctobluClient: Disconnecting from Octoblu");

            // Disconnect from Octoblu and end this process
            //_socket.Disconnect();
            _socket.Close();
            _socket = null;
            _endEvent.Set();
        }
Ejemplo n.º 19
0
        protected override void Append(LoggingEvent loggingEvent)
        {
            loggingEvent.Fix = this.Fix;
            //ManualResetEvent ManualResetEvent = null;
            Quobject.SocketIoClientDotNet.Client.Socket socket = IO.Socket(m_serverUrl); //new Client(m_serverUrl);
            ManualResetEvent ManualResetEvent = new ManualResetEvent(false);

            string output = JsonConvert.SerializeObject(new
            {
                HostName        = Environment.MachineName,
                LoggrName       = loggingEvent.LoggerName,
                Level           = loggingEvent.Level.DisplayName,
                Message         = loggingEvent.RenderedMessage,
                ThreadName      = loggingEvent.ThreadName,
                TimeStamp       = loggingEvent.TimeStamp,
                ClassName       = loggingEvent.LocationInformation.ClassName,
                FileName        = loggingEvent.LocationInformation.FileName,
                LineNumber      = loggingEvent.LocationInformation.LineNumber,
                MethodName      = loggingEvent.LocationInformation.MethodName,
                StackFrames     = loggingEvent.LocationInformation.StackFrames,
                UserName        = loggingEvent.UserName,
                ExceptionString = loggingEvent.GetExceptionString(),
                Domain          = loggingEvent.Domain,
                Identity        = loggingEvent.Identity,
                Propeties       = loggingEvent.Properties
            }, Newtonsoft.Json.Formatting.Indented, new Newtonsoft.Json.JsonSerializerSettings
            {
                CheckAdditionalContent     = true,
                ConstructorHandling        = Newtonsoft.Json.ConstructorHandling.AllowNonPublicDefaultConstructor,
                MetadataPropertyHandling   = Newtonsoft.Json.MetadataPropertyHandling.ReadAhead,
                MissingMemberHandling      = Newtonsoft.Json.MissingMemberHandling.Ignore,
                NullValueHandling          = Newtonsoft.Json.NullValueHandling.Include,
                ObjectCreationHandling     = Newtonsoft.Json.ObjectCreationHandling.Reuse,
                PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.All,
                ReferenceLoopHandling      = Newtonsoft.Json.ReferenceLoopHandling.Serialize
            });
            JObject jobj = JObject.Parse(output);

            try
            {
                socket.On(Socket.EVENT_CONNECT, () =>
                {
                    //socket.Emit("nickname", Environment.MachineName);
                    socket.Emit("sendMessage", jobj);
                    ManualResetEvent.Set();
                });
                ManualResetEvent.WaitOne(5000, true);
                socket.Disconnect();
                socket.Close();
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.TraceError("<<<< WebSocketAppender ERROR >>>> {0}", ex.ToString());
            }
        }
Ejemplo n.º 20
0
        public void ShouldReceiveUtf8MultibyteCharacters()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var correct = new string[]
            {
                "てすと",
                "Я Б Г Д Ж Й",
                "Ä ä Ü ü ß",
                "utf8 — string",
                "utf8 — string"
            };
            var i = 0;

            var options = CreateOptions();

            options.Transports = new List <string>()
            {
                "polling"
            };
            var uri = CreateUri();

            socket = IO.Socket(uri, options);

            socket.On("takeUtf8", (data) =>
            {
                events.Enqueue(data);
                i++;
                log.Info(string.Format("takeUtf8 data={0} i={1}", (string)data, i));

                if (i >= correct.Length)
                {
                    ManualResetEvent.Set();
                }
            });


            socket.Emit("getUtf8");
            ManualResetEvent.WaitOne();
            socket.Close();
            var j = 0;

            foreach (var obj in events)
            {
                var str = (string)obj;
                Assert.Equal(correct[j++], str);
            }
        }
Ejemplo n.º 21
0
        public void ShouldFireReconnectEventsOnSocket()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag             = false;
            var reconnects = 0;
            var events     = new Queue <int>();

            var correct = new int[]
            {
                1, 2, 2
            };

            var options = CreateOptions();

            options.Reconnection         = true;
            options.Timeout              = 0;
            options.ReconnectionAttempts = 2;
            options.ReconnectionDelay    = 10;
            var uri = CreateUri();

            var manager = new Manager(new Uri(uri), options);

            socket = manager.Socket("/timeout_socket");

            socket.On(Socket.EVENT_RECONNECT_ATTEMPT, (attempts) =>
            {
                log.Info("EVENT_RECONNECT_ATTEMPT");
                reconnects++;
                events.Enqueue(int.Parse((attempts).ToString()));
            });

            socket.On(Socket.EVENT_RECONNECT_FAILED, () =>
            {
                log.Info("EVENT_RECONNECT_FAILED");
                Flag = true;
                events.Enqueue(reconnects);
                socket.Close();
                manager.Close();
                ManualResetEvent.Set();
            });

            ManualResetEvent.WaitOne();
            var j = 0;

            foreach (var number in events)
            {
                Assert.Equal(correct[j++], number);
            }
        }
Ejemplo n.º 22
0
        public void ShouldSendBinaryDataAsAnArraybufferMixedWithJson()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag             = false;

            var buf  = System.Text.Encoding.UTF8.GetBytes("howdy");
            var jobj = new JObject();

            jobj.Add("hello", "lol");
            jobj.Add("message", buf);
            jobj.Add("goodbye", "gotcha");

            var options = CreateOptions();
            //options.Transports = ImmutableList.Create<string>(Polling.NAME);

            var uri = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On("jsonbuff-ack", () =>
            {
                Flag = true;
                ManualResetEvent.Set();
            });

            socket.On(Socket.EVENT_DISCONNECT, () =>
            {
                log.Info("EVENT_DISCONNECT");
            });

            socket.Emit("jsonbuff", jobj);

            ManualResetEvent.WaitOne();
            Task.Delay(1).Wait();

            log.Info("About to wait 1sec");

            //Task.Delay(1000).Wait();
            log.Info("About to call close");
            socket.Close();
            //Task.Delay(1000).Wait();
            Assert.True(Flag);
            log.Info("Finish");
        }
Ejemplo n.º 23
0
        public void ShouldNotTryToReconnectAndShouldFormAConnectionWhenConnectingToCorrectPortWithDefaultTimeout()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag             = false;


            var options = CreateOptions();

            options.Reconnection      = true;
            options.ReconnectionDelay = 10;
            var uri = CreateUri();

            var manager = new Manager(new Uri(uri), options);

            socket = manager.Socket("/valid");

            manager.On(Manager.EVENT_RECONNECT_ATTEMPT, () =>
            {
                Flag = true;
            });

            socket.On(Socket.EVENT_CONNECT, async() =>
            {
                // set a timeout to let reconnection possibly fire
                log.Info("EVENT_CONNECT");
                await Task.Delay(1000);

                ManualResetEvent.Set();
            });

            ManualResetEvent.WaitOne();
            log.Info("after WaitOne");
            socket.Close();
            manager.Close();
            Assert.False(Flag);
        }
Ejemplo n.º 24
0
        public void ShouldFireErrorOnSocket()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag             = false;
            var events = new Queue <object>();

            var options = CreateOptions();

            options.Reconnection = true;
            var uri = CreateUri();

            var manager = new Manager(new Uri(uri), options);

            socket = manager.Socket("/timeout_socket");

            socket.On(Socket.EVENT_ERROR, (e) =>
            {
                var exception = (EngineIOException)e;
                log.Info("EVENT_ERROR");
                events.Enqueue(exception.code);
                socket.Close();
                manager.Close();
                ManualResetEvent.Set();
            });

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                manager.EngineSocket.OnPacket(new Packet(Packet.ERROR, "test"));
            });

            ManualResetEvent.WaitOne();
            var obj = (string)events.Dequeue();

            Assert.Equal("test", obj);
        }
Ejemplo n.º 25
0
        public void MessageTestHebrew()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue <object>();

            var options = CreateOptions();


            options.Transports = ImmutableList.Create <string>(Polling.NAME);

            var uri = CreateUri();

            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("test", "csdataてすとבדיקה");
            });

            socket.On("hi",
                      (data) =>
            {
                log.Info("EVENT_MESSAGE");
                events.Enqueue(data);
                //socket.Emit("test", "2csdataてすとבדיקה");
                ManualResetEvent.Set();
            });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();

            Assert.Equal("more data", obj);
        }
Ejemplo n.º 26
0
        public void ShouldWorkWithAcks2()
        {
            var log = LogManager.GetLogger(Global.CallerName());

            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            string message = "";

            var options = CreateOptions();
            var uri     = CreateUri();

            socket = IO.Socket(uri, options);
            socket.Emit("ack2");

            var myIListenerImpl = new Acks2ListenerImpl((msg, cb) =>
            {
                message  = (string)msg;
                var obj  = new JObject();
                obj["b"] = true;
                var iack = (IAck)cb;
                iack.Call(5, obj);
            });


            socket.On("ack2", myIListenerImpl);

            socket.On("got it",
                      (data) =>
            {
                log.Info("got it");
                ManualResetEvent.Set();
            });

            ManualResetEvent.WaitOne();
            Assert.Equal("hello there", message);
            socket.Close();
        }
        public void ShouldFireReconnectingOnSocketWithAttemptsNumberWhenReconnectingTwice()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag = false;
            var reconnects = 0;
            var events = new Queue<int>();

            var correct = new int[]
            {
                1,2,2
            };

            var options = CreateOptions();
            options.Reconnection = true;
            options.Timeout = 0;
            options.ReconnectionAttempts = 2;
            options.ReconnectionDelay = 10;
            var uri = CreateUri();

            var manager = new Manager(new Uri(uri), options);
            socket = manager.Socket("/timeout_socket");

            socket.On(Socket.EVENT_RECONNECTING, (attempts) =>
            {
                reconnects++;
                events.Enqueue(int.Parse((attempts).ToString()));
            });

            socket.On(Socket.EVENT_RECONNECT_FAILED, () =>
            {
                log.Info("EVENT_RECONNECT_FAILED");
                Flag = true;
                events.Enqueue(reconnects);
                socket.Close();
                manager.Close();
                ManualResetEvent.Set();
            });

            ManualResetEvent.WaitOne();
            var j = 0;
            foreach (var number in events)
            {
                Assert.Equal(correct[j++], number);
            }               
        }
        public void ShouldNotTryToReconnectAndShouldFormAConnectionWhenConnectingToCorrectPortWithDefaultTimeout()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag = false;


            var options = CreateOptions();
            options.Reconnection = true;
            options.ReconnectionDelay = 10;
            var uri = CreateUri();

            var manager = new Manager(new Uri(uri), options);
            socket = manager.Socket("/valid");

            manager.On(Manager.EVENT_RECONNECT_ATTEMPT, () =>
            {
                Flag = true;
            });

            socket.On(Socket.EVENT_CONNECT, async() =>
            {
                // set a timeout to let reconnection possibly fire
                log.Info("EVENT_CONNECT");
                await Task.Delay(1000);

                ManualResetEvent.Set();
            });

            ManualResetEvent.WaitOne();
            log.Info("after WaitOne");
            socket.Close();
            manager.Close();
            Assert.False(Flag);                   
        }
        public void ShouldReceiveUtf8MultibyteCharacters()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var correct = new string[]
            {
                "てすと",
                "Я Б Г Д Ж Й",
                "Ä ä Ü ü ß",
                "李O四",
                "utf8 — string"
            };
            var i = 0;

            var options = CreateOptions();
            options.Transports = ImmutableList.Create<string>(Polling.NAME);
            var uri = CreateUri();
            socket = IO.Socket(uri, options);

            socket.On("takeUtf8", (data) =>
            {
                events.Enqueue(data);
                i++;
                log.Info(string.Format("takeUtf8 data={0} i={1}",(string)data,i));

                if (i >= correct.Length)
                {
                    ManualResetEvent.Set();
                }
            });
           

            socket.Emit("getUtf8");
            ManualResetEvent.WaitOne();
            socket.Close();
            var j = 0;
            foreach (var obj in events)
            {
                var str = (string) obj;
                Assert.Equal(correct[j++], str);
            }
        }
        public void ShouldFireErrorOnSocket()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag = false;
            var events = new Queue<object>();

            var options = CreateOptions();
            options.Reconnection = true;
            var uri = CreateUri();

            var manager = new Manager(new Uri(uri), options);
            socket = manager.Socket("/timeout_socket");

            socket.On(Socket.EVENT_ERROR, (e) =>
            {
                var exception = (EngineIOException) e;
                log.Info("EVENT_ERROR");
                events.Enqueue(exception.code);
                socket.Close();
                manager.Close();
                ManualResetEvent.Set();
            });

            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                manager.EngineSocket.OnPacket(new Packet(Packet.ERROR, "test"));
            });

            ManualResetEvent.WaitOne();
            var obj = (string)events.Dequeue();
            Assert.Equal("test", obj);
        }
        public void BuffAck()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag = false;

            var exptected = System.Text.Encoding.UTF8.GetBytes("asdfasdf");

            var options = CreateOptions();
            //options.Transports = ImmutableList.Create<string>(Polling.NAME);
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On("buffack", () =>
            {
                Flag = true;
                ManualResetEvent.Set();
            });

            socket.Emit("buffa", exptected);

            ManualResetEvent.WaitOne();
            //Task.Delay(8000).Wait();
            socket.Close();
            //Task.Delay(4000).Wait();
            Assert.True(Flag);
            log.Info("Finish");
        }
        public void ShouldWorkWithFalse()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                socket.Emit("false");
            });

            socket.On("false",
                (data) =>
                {
                    events.Enqueue(data);
                    ManualResetEvent.Set();
                });

            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();
            Assert.False((bool) obj);
        }
        public void ShouldWorkWithAcks2()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            string message = "";

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.Emit("ack2");

            var myIListenerImpl = new Acks2ListenerImpl((msg, cb) =>
            {
                message = (string)msg;
                var obj = new JObject();
                obj["b"] = true;
                var iack = (IAck)cb;
                iack.Call(5, obj);

            });


            socket.On("ack2", myIListenerImpl);

            socket.On("got it",
                (data) =>
                {
                    log.Info("got it");
                    ManualResetEvent.Set();
                });

            ManualResetEvent.WaitOne();
            Assert.Equal("hello there", message);
            socket.Close();

        }
        public void ShouldSendBinaryDataAsAnArraybuffer()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag = false;

            var exptected = System.Text.Encoding.UTF8.GetBytes("asdfasdf");

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On("buffack", () =>
            {
                Flag = true;
                ManualResetEvent.Set();
            });

            socket.Emit("buffa", exptected);

            ManualResetEvent.WaitOne();
            socket.Close();
            Assert.True(Flag);
        }
        public void ShouldEmitDateAsDate()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On("takeDate", (data) =>
            {
                log.Info("takeDate");
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            socket.Emit("getDate");

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();
            Assert.IsInstanceOfType(obj, typeof(DateTime) );
        }
        public void ShouldWorkWithAcks()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);


            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.Emit("ack");

            socket.On("ack", (cb) =>
            {
                var obj = new JObject();
                obj["b"] = true;
                var iack = (IAck) cb;
                iack.Call(5, obj);
            });

            socket.On("got it",
                (data) =>
                {
                    log.Info("got it");
                    ManualResetEvent.Set();
                });

            ManualResetEvent.WaitOne();
            socket.Close();

        }
        public void Cookie()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();
            var uri = CreateUri();
            options.Cookies.Add("connect.sid","12345");
            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("get_cookie");                
            });

            socket.On("got_cookie",
                (data) =>
                {
                    log.Info("EVENT_MESSAGE data=" + data);
                    events.Enqueue(data);
                    ManualResetEvent.Set();
                });

            ManualResetEvent.WaitOne();
            socket.Close();
            var cookie = (string)events.Dequeue();

            Assert.Equal("connect.sid=12345", cookie);
        }
        public void Json10000000CharsTest()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("json10000000chars");
            });

            socket.On("json10000000chars",
                (data) =>
                {
                    log.Info("EVENT_MESSAGE data=" + data);
                    events.Enqueue(data);
                    ManualResetEvent.Set();
                });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = (JObject)events.Dequeue();
            var str = (string)obj["data"];
            Assert.Equal(10000000, str.Length);
        }
        public void ShouldSendBinaryDataAsAnArraybufferMixedWithJson()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            Flag = false;

            var buf = System.Text.Encoding.UTF8.GetBytes("howdy");
            var jobj = new JObject();
            jobj.Add("hello", "lol");
            jobj.Add("message", buf);
            jobj.Add("goodbye", "gotcha");

            var options = CreateOptions();
            //options.Transports = ImmutableList.Create<string>(Polling.NAME);

            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On("jsonbuff-ack", () =>
            {
                Flag = true;
                ManualResetEvent.Set();
            });

            socket.On(Socket.EVENT_DISCONNECT, () =>
            {
                log.Info("EVENT_DISCONNECT");
            });

            socket.Emit("jsonbuff", jobj);

            ManualResetEvent.WaitOne();
            Task.Delay(1).Wait();

            log.Info("About to wait 1sec");
            
            //Task.Delay(1000).Wait();
            log.Info("About to call close");
            socket.Close();
            //Task.Delay(1000).Wait();
            Assert.True(Flag);
            log.Info("Finish");
        }
        public void ShouldEmitDateInObject()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On("takeDateObj", (data) =>
            {
                log.Info("takeDate");
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            socket.Emit("getDateObj");

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = (JObject) events.Dequeue();

            Assert.IsType<JObject>(obj);
            var date = (obj["date"]).Value<DateTime>();
            Assert.IsType<DateTime>(date);
        }
Ejemplo n.º 41
0
        public void ListenData()
        {
            string serverAddress = ConfigurationManager.AppSettings["ServerAddress"];
            socket = IO.Socket(serverAddress);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                Dispatcher.Invoke(() =>
                {
                });
            });
            socket.On(Socket.EVENT_MESSAGE, (data) =>
            {
                Dispatcher.Invoke(() =>
                {
                    rtb_conversation.AppendText(((Newtonsoft.Json.Linq.JObject)data).ToString() + Environment.NewLine);
                });
            });
            socket.On(Socket.EVENT_CONNECT_ERROR, (data) =>
            {
                if (!isError)
                {
                    Dispatcher.Invoke(() =>
                    {
                        rtb_conversation.AppendText("Cannot connect to SERVER" + Environment.NewLine);
                    });
                    isError = true;
                }
            });

            socket.On(Socket.EVENT_ERROR, (data) =>
            {
                Dispatcher.Invoke(() =>
                {
                    rtb_conversation.AppendText(((Newtonsoft.Json.Linq.JObject)data).ToString() + Environment.NewLine);
                });
            });


            socket.On("ChatMessage", (data) =>
            {
                string message = ((Newtonsoft.Json.Linq.JObject)data)["message"].ToString();
                string timeNow = DateTime.Now.ToString("HH:mm:ss tt");

                if (message == "Welcome!")
                {
                    Dispatcher.Invoke(() =>
                    {
                        rtb_conversation.AppendText(string.Format("Server - {0}", DateTime.Now.ToString("HH:mm:ss tt")) + Environment.NewLine);
                        rtb_conversation.AppendText(string.Format("{0}", message) + Environment.NewLine);
                        rtb_conversation.AppendText("--------------------------------------------------------" + Environment.NewLine);
                    });

                    if (playerName != "Guest")
                    {
                        socket.Emit("MyNameIs", playerName);
                    }
                    socket.Emit("ConnectToOtherPlayer");

                }
                //Message which annouces player connect to server and recieve turn
                else if (message.Contains("<br />"))
                {
                    int index = message.IndexOf("<br />");
                    string str1 = message.Substring(0, index);
                    string str2 = message.Substring(index + 6);
                    Dispatcher.Invoke(() =>
                    {
                        rtb_conversation.AppendText(string.Format("Server - {0}", DateTime.Now.ToString("HH:mm:ss tt")) + Environment.NewLine);
                        rtb_conversation.AppendText(str1 + Environment.NewLine);
                        rtb_conversation.AppendText(str2 + Environment.NewLine);
                        rtb_conversation.AppendText("--------------------------------------------------------" + Environment.NewLine);
                        rtb_conversation.ScrollToEnd();
                    });
                    //If BOT online and have first turn, lets it plays at [5,5]
                    if (ChosingMode.mode == 4)
                    {
                        socket.Emit("ChatMessage", botChat[0]);
                        if (str2 != "You are the second player!")
                        {
                            choosedRow = 5;
                            choosedCol = 5;
                            socket.Emit("MyStepIs", JObject.FromObject(new { row = 5, col = 5 }));
                        }
                    }

                }
                //Message from other player
                else if (((Newtonsoft.Json.Linq.JObject)data).Count > 1)
                {
                    Dispatcher.Invoke(() =>
                    {
                        rtb_conversation.AppendText(string.Format("{0} - {1}", ((Newtonsoft.Json.Linq.JObject)data)["from"].ToString(), DateTime.Now.ToString("HH:mm:ss tt")) + Environment.NewLine);
                        rtb_conversation.AppendText(string.Format("{0}", message) + Environment.NewLine);
                        rtb_conversation.AppendText("--------------------------------------------------------" + Environment.NewLine);
                        rtb_conversation.ScrollToEnd();
                    });
                }
                //Message from server
                else
                {
                    Dispatcher.Invoke(() =>
                    {
                        rtb_conversation.AppendText(string.Format("Server - {0}", DateTime.Now.ToString("HH:mm:ss tt")) + Environment.NewLine);
                        rtb_conversation.AppendText(string.Format("{0}", message) + Environment.NewLine);
                        rtb_conversation.AppendText("--------------------------------------------------------" + Environment.NewLine);
                        rtb_conversation.ScrollToEnd();
                    });
                }
            });

            //End of round
            socket.On("EndGame", (data) =>
            {
                Dispatcher.Invoke(() =>
                {
                    string message = ((Newtonsoft.Json.Linq.JObject)data)["message"].ToString();
                    rtb_conversation.AppendText(string.Format("Server - {0}", DateTime.Now.ToString("HH:mm:ss tt")) + Environment.NewLine);
                    rtb_conversation.AppendText(string.Format("{0}", message) + Environment.NewLine);
                    rtb_conversation.AppendText("--------------------------------------------------------" + Environment.NewLine);
                    rtb_conversation.ScrollToEnd();
                    MessageBox.Show(message);
                    thread.Interrupt();
                    socket.Close();
                    this.Close();
                });
            });


            //Recieve game info
            socket.On("NextStepIs", (data) =>
            {
                int player = int.Parse(((Newtonsoft.Json.Linq.JObject)data)["player"].ToString()) + 1;
                int row = int.Parse(((Newtonsoft.Json.Linq.JObject)data)["row"].ToString());
                int col = int.Parse(((Newtonsoft.Json.Linq.JObject)data)["col"].ToString());
                //player = 1: client turn
                if (player == 1)
                {
                    Dispatcher.Invoke(() =>
                    {
                        btnList[row][col].Content = AddChess(row, col, player);
                        gp.board[row, col] = player;                      
                    });
                }
                //player = 2 other turn
                else
                {
                    Dispatcher.Invoke(() =>
                    {
                        btnList[row][col].Content = AddChess(row, col, player);
                        gp.board[row, col] = player;                        
                    });
                    if (ChosingMode.mode == 4)
                        {
                            Thread aiThread = new Thread(new ThreadStart(gp.ChooseChess));
                            aiThread.Start();
                            Thread.Sleep(10);
                            choosedCol = gp.col;
                            choosedRow = gp.row;
                            gp.board[choosedRow, choosedCol] = 2;
                            socket.Emit("MyStepIs", JObject.FromObject(new { row = choosedRow, col = choosedCol }));
                            socket.Emit("ChatMessage", botChat[rd.Next(1, botChat.Count())] );
                        }
                    
                }
            });
        }
        public void ShouldGetBinaryDataAsAnArraybuffer()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On("doge", (data) =>
            {
                events.Enqueue(data);
                ManualResetEvent.Set();
            });

            socket.Emit("doge");

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();

            var binData = (byte[])events.Dequeue();
            var exptected = System.Text.Encoding.UTF8.GetBytes("asdfasdf");
            var i = 0;
            foreach (var b in exptected)
            {
                Assert.Equal(b, binData[i++]);
            }
        }
        public void ShouldReceiveDateWithAckAsAction()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            Message = "";
            Number = 0;
            ManualResetEvent = new ManualResetEvent(false);
            var obj = new JObject();
            obj["b"] = true;

            var options = CreateOptions();
            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.Emit("getAckDate", (date, n) =>
            {
                log.Info("getAckDate data=" + date);
                Message = ((DateTime)date).ToString("O");
                Number = int.Parse(n.ToString());
                ManualResetEvent.Set();
            }, obj);


            ManualResetEvent.WaitOne();
            Assert.Equal(28, Message.Length);
            Assert.Equal(5, Number);
            socket.Close();
        }
        public void MessageTestHebrew()
        {
            var log = LogManager.GetLogger(Global.CallerName());
            log.Info("Start");
            ManualResetEvent = new ManualResetEvent(false);
            var events = new Queue<object>();

            var options = CreateOptions();


            options.Transports = ImmutableList.Create<string>(Polling.NAME);

            var uri = CreateUri();
            socket = IO.Socket(uri, options);
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                log.Info("EVENT_CONNECT");
                socket.Emit("test", "csdataてすとבדיקה");
            });

            socket.On("hi",
                (data) =>
                {
                    log.Info("EVENT_MESSAGE");
                    events.Enqueue(data);
                    //socket.Emit("test", "2csdataてすとבדיקה");
                    ManualResetEvent.Set();
                });

            //socket.Open();
            ManualResetEvent.WaitOne();
            socket.Close();
            var obj = events.Dequeue();
            Assert.Equal("more data", obj);
        }
Ejemplo n.º 45
0
 public void Disconnect()
 {
     socket?.Close();
 }