コード例 #1
0
        private void Connect(string command, string username)
        {
            using (var ws = new WebSocket("ws://127.0.0.1:8080/gs-guide-websocket"))
            {
                ws.OnMessage += ws_OnMessage;
                ws.OnOpen    += ws_OnOpen;
                ws.Connect();

                StompMessageSerializer serializer = new StompMessageSerializer();

                var connect = new StompMessage("CONNECT");
                connect["accept-version"] = "1.2";
                connect["host"]           = "";
                ws.Send(serializer.Serialize(connect));

                var content = new Content()
                {
                    Username = username, Message = command, id = Guid.NewGuid()
                };
                var broad = new StompMessage("SEND", JsonConvert.SerializeObject(content));
                broad["content-type"] = "application/json";
                broad["destination"]  = "/client/message";
                ws.Send(serializer.Serialize(broad));

                Console.ReadKey(true);
            }
        }
コード例 #2
0
 public IssPlusWebSocketClient(IClientLogger logger)
 {
     _logger        = logger;
     Connected      = false;
     _subscriptions = new ConcurrentDictionary <string, Subscription>();
     _ser           = new StompMessageSerializer();
     _buffer        = new ArraySegment <byte>(new byte[1024 * 64]);
 }
コード例 #3
0
        public void SerializingAStompMessage()
        {
            var msg = new StompMessage("CONNECT", "lorum!");
            msg["destination"] = "/my/queue";
            msg["foo"] = "bar";

            string r = new StompMessageSerializer().Serialize(msg);

            Assert.AreEqual(r, "CONNECT\ncontent-length:6\ndestination:/my/queue\nfoo:bar\n\nlorum!\0");
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: netopvh/GPS_Tracking
        public MainForm()
        {
            InitializeComponent();
            isLogout                = false;
            locationHistories       = new ArrayList();
            gMapOverlay             = new GMapOverlay("marker");
            showOnlyCurrentLocation = true;
            serializer              = new StompMessageSerializer();

            ConnectToServer();
        }
コード例 #5
0
        public void MalformedHeaderShouldBeIgnored()
        {
            var msg = new StompMessageSerializer().Deserialize("CONNECT\ndestination:/my/queue\nfoo\n\nlorum!\0");

            Assert.IsNotNull(msg);
            Assert.AreEqual("CONNECT", msg.Command);
            Assert.AreEqual("lorum!", msg.Body);
            Assert.AreEqual(2, msg.Headers.Count);
            Assert.AreEqual("/my/queue", msg["destination"]);
            Assert.AreEqual("6", msg["content-length"]);
        }
コード例 #6
0
        public void SerializingAStompMessage()
        {
            var msg = new StompMessage("CONNECT", "lorum!");

            msg["destination"] = "/my/queue";
            msg["foo"]         = "bar";

            string r = new StompMessageSerializer().Serialize(msg);

            Assert.AreEqual(r, "CONNECT\ncontent-length:6\ndestination:/my/queue\nfoo:bar\n\nlorum!\0");
        }
コード例 #7
0
        public void MalformedHeaderShouldBeIgnored()
        {
            var msg = new StompMessageSerializer().Deserialize("CONNECT\ndestination:/my/queue\nfoo\n\nlorum!\0");

            Assert.IsNotNull(msg);
            Assert.AreEqual("CONNECT", msg.Command);
            Assert.AreEqual("lorum!", msg.Body);
            Assert.AreEqual(2, msg.Headers.Count);
            Assert.AreEqual("/my/queue", msg["destination"]);
            Assert.AreEqual("6", msg["content-length"]);
        }
コード例 #8
0
        public void DeserializingAStompMessage()
        {
            var msg = new StompMessageSerializer().Deserialize("CONNECT\ndestination:/my/queue\nfoo:  bar  \n\nlorum!\0");

            Assert.IsNotNull(msg);
            Assert.AreEqual("CONNECT", msg.Command);
            Assert.AreEqual("lorum!", msg.Body);
            Assert.AreEqual(3, msg.Headers.Count);
            Assert.AreEqual("/my/queue", msg["destination"]);
            Assert.AreEqual("bar", msg["foo"]);
            Assert.AreEqual("6", msg["content-length"]);
        }
コード例 #9
0
        public void DeserializingAStompMessage()
        {
            var msg = new StompMessageSerializer().Deserialize("CONNECT\ndestination:/my/queue\nfoo:  bar  \n\nlorum!\0");

            Assert.IsNotNull(msg);
            Assert.AreEqual("CONNECT", msg.Command);
            Assert.AreEqual("lorum!", msg.Body);
            Assert.AreEqual(3, msg.Headers.Count);
            Assert.AreEqual("/my/queue", msg["destination"]);
            Assert.AreEqual("bar", msg["foo"]);
            Assert.AreEqual("6", msg["content-length"]);
        }
コード例 #10
0
        static void Main(string[] args)
        {
            using (var ws = new WebSocket("ws://localhost:8080/spring-websocket-stomp-apollo/chat/websocket"))
            {
                ws.OnMessage += ws_OnMessage;
                ws.OnOpen    += ws_OnOpen;
                ws.OnError   += ws_OnError;
                ws.Connect();
                Thread.Sleep(1000);

                StompMessageSerializer serializer = new StompMessageSerializer();

                var connect = new StompMessage("CONNECT");
                connect["accept-version"] = "1.2";
                connect["host"]           = "";
                ws.Send(serializer.Serialize(connect));

                var clientId = RandomString(5);
                Console.WriteLine("Client Id :" + clientId);
                Thread.Sleep(1000);

                var sub = new StompMessage("SUBSCRIBE");
                sub["id"]          = "sub-0";
                sub["destination"] = "/topic/broadcast";
                ws.Send(serializer.Serialize(sub));

                var sub1 = new StompMessage("SUBSCRIBE");
                sub1["id"]          = "sub-1";
                sub1["destination"] = "/queue/message-" + clientId;
                ws.Send(serializer.Serialize(sub1));

                Thread.Sleep(1000);
                var content = new Content()
                {
                    Subject = "Stomp client", Message = "Hello World!!"
                };
                var broad = new StompMessage("SEND", JsonConvert.SerializeObject(content));
                broad["content-type"] = "application/json";
                broad["destination"]  = "/app/broadcast";
                ws.Send(serializer.Serialize(broad));

                Console.ReadKey(true);
            }
        }
コード例 #11
0
        //INIT - SET TEAMDATA
        public bool InitialzationTeam()
        {
            JObject obj = getUser("teamCode");

            if (obj != null)
            {
                var client = new WebClient();
                client.Headers[HttpRequestHeader.ContentType] = "application/json";
                client.Encoding = UTF8Encoding.UTF8;

                string response = client.UploadString("http://danny-dataserver.kro.kr:8080/getUserTeam", obj.ToString());

                /*
                 * need value
                 *
                 * teamCode
                 *
                 */
                JObject data = JObject.Parse(response);

                TeamData.id    = Convert.ToInt64(data["id"].ToString());
                TeamData.name  = data["name"].ToString();
                TeamData.code  = data["code"].ToString();
                TeamData.files = data["files"].ToString().Equals("null") ? null : JsonConvert.DeserializeObject <string[]>(data["files"].ToString());//.Values().Select(x => x.Value<string>()).ToArray();
                string str = getNoticeMessage();

                TeamData.notice = str.Equals("{\"message\":\"NO NOTICES\",\"errorCode\":\"404\"}") ? null : JsonConvert.DeserializeObject <List <Notice> >(str);

                string str2 = getToDoList();
                TeamData.toDoList = str2.Equals("{\"message\":\"NO ToDoList\",\"errorCode\":\"404\"}") ? null : JsonConvert.DeserializeObject <List <ToDoList> >(str2);


                UserData.socket = new WebSocketSharp.WebSocket("ws://danny-dataserver.kro.kr:8080/my-ws/websocket");

                StompMessageSerializer serializer = new StompMessageSerializer();
                UserData.socket.OnOpen += (sender, e) =>
                {
                    var connect = new StompMessage("CONNECT");
                    connect["accept-version"] = "1.1";
                    connect["heart-beat"]     = "0,1000";
                    UserData.socket.Send(serializer.Serialize(connect));

                    var sub = new StompMessage(StompFrame.SUBSCRIBE);
                    sub["id"]          = "sub-" + UserData.id;
                    sub["destination"] = "/topics/event";
                    UserData.socket.Send(serializer.Serialize(sub));


                    var test = new StompMessage(StompFrame.SEND, "{\"name\":\"Test\"}");
                    test["content-type"] = "application/json";
                    test["destination"]  = "/app/hello";
                    UserData.socket.Send(serializer.Serialize(test));
                };
                UserData.socket.OnMessage += (sender, e) =>
                {
                    string deserialized = serializer.Deserialize(e.Data).Body;
                    if (deserialized.Contains("Hello"))
                    {
                        Console.WriteLine("Hello~");
                    }


                    if (deserialized.Contains("UPDATED_FILES")) // UPDATE FILES
                    {
                        if (UserData.teamCode == JObject.Parse(deserialized)["name"].ToString())
                        {
                            client = new WebClient();
                            client.Headers[HttpRequestHeader.ContentType] = "application/json";
                            client.Encoding = UTF8Encoding.UTF8;
                            response        = client.UploadString("http://danny-dataserver.kro.kr:8080/getUserTeam", obj.ToString());

                            data = JObject.Parse(response);
                            Console.WriteLine("Received");
                            TeamData.files       = data["files"].ToString().Equals("null") ? null : JsonConvert.DeserializeObject <string[]>(data["files"].ToString());//.Values().Select(x => x.Value<string>()).ToArray()
                            UserData.fileUpdated = true;
                            TeamData.Updated     = true;
                        }
                    }

                    if (deserialized.Contains("SetNoticeRead")) // Some player reading...
                    {
                        var strs = getNoticeMessage();

                        TeamData.notice = strs.Equals("{\"message\":\"NO NOTICES\",\"errorCode\":\"404\"}") ? null : JsonConvert.DeserializeObject <List <Notice> >(strs);
                    }

                    if (deserialized.Contains("AddNotices")) // Notice added
                    {
                        var strs = getNoticeMessage();

                        List <Notice> result = new List <Notice>();
                        TeamData.AddNotices = strs.Equals("{\"message\":\"NO NOTICES\",\"errorCode\":\"404\"}") ? null : JsonConvert.DeserializeObject <List <Notice> >(strs);

                        if (TeamData.notice != null)
                        {
                            foreach (Notice n in TeamData.notice)
                            {
                                foreach (Notice n2 in TeamData.AddNotices)
                                {
                                    if (n.id == n2.id)
                                    {
                                        result.Add(n2);
                                    }
                                }
                            }
                            foreach (Notice n in result)
                            {
                                TeamData.AddNotices.Remove(n);
                            }
                        }


                        UserData.noticeUpdated = true;
                        TeamData.notice        = strs.Equals("{\"message\":\"NO NOTICES\",\"errorCode\":\"404\"}") ? null : JsonConvert.DeserializeObject <List <Notice> >(strs);
                    }

                    if (deserialized.Contains("AddMemos")) // Memo Added
                    {
                        JObject objs = JObject.Parse(JObject.Parse(deserialized)["name"].ToString());

                        if (objs["id"].ToString().Equals(UserData.id.ToString())) // IF THIS USER
                        {
                            List <int> current = JsonConvert.DeserializeObject <List <int> >(objs["messages"].ToString());
                            UserData.memos       = current.ToArray();
                            UserData.updateMemos = current.ToArray()[current.Count() - 1];
                            UserData.userMemos   = GetMemoText(UserData.memos.Length - 1);
                            UserData.memoUpdated = true;
                        }
                    }
                };
                UserData.socket.OnError += (sender, e) =>
                {
                };
                UserData.socket.OnClose += (sender, e) =>
                {
                    MessageBox.Show("SERVER DISCONNECTED");
                    System.Diagnostics.Process.GetCurrentProcess().Kill();
                };
                UserData.socket.Connect();

                return(true);
            }
            return(false);
        }