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); } }
public IssPlusWebSocketClient(IClientLogger logger) { _logger = logger; Connected = false; _subscriptions = new ConcurrentDictionary <string, Subscription>(); _ser = new StompMessageSerializer(); _buffer = new ArraySegment <byte>(new byte[1024 * 64]); }
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"); }
public MainForm() { InitializeComponent(); isLogout = false; locationHistories = new ArrayList(); gMapOverlay = new GMapOverlay("marker"); showOnlyCurrentLocation = true; serializer = new StompMessageSerializer(); ConnectToServer(); }
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"]); }
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"]); }
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); } }
//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); }