public bool CancelRequest() { if (CurrentAsk == null) { return(false); } CurrentAsk.stopListening(); CurrentAsk = null; RaisePropertyChanged("CurrentAsk"); //Send request to remove from queue here! Payload p = new Payload(); p.request = "cancel"; p.sessionkey = client.SessionKey; p.sessionid = client.SessionID; p.path = path.Concat(new String[] { "audio" }).ToList(); Random rnd = new Random(); p.identity = rnd.Next(Int32.MaxValue); ResponsePayload r = new ResponsePayload(); r.message = "Connection: timeout!"; connector.Send(p); return(true); }
private bool StopTalking() { audioCaller.Close(); connector.ReceivedData -= CancelRequested; //Stop recording Payload p = new Payload(); p.request = "cancel"; p.sessionkey = client.SessionKey; p.sessionid = client.SessionID; p.path = ClassRequested.path.Concat(new String[] { "audio" }).ToList(); Random rnd = new Random(); p.identity = packetIdentity = rnd.Next(Int32.MaxValue); ResponsePayload r = new ResponsePayload(); r.message = "Connection: timeout!"; Task k = Task.Factory.StartNew(() => { r = connector.SendAndReceive(p); }); k.Wait(5000); if (r.status == "success") { return(true); } else { client.currentError = r.message; return(false); } }
public bool list() { Payload p = Payload.makePayload(); p.sessionid = this.SessionID; p.request = "ls"; connector.Send(p); ResponsePayload r = connector.waitForPayload(); if (r.status == "success") { var k = r.payload["list"]; var aa = JsonConvert.DeserializeObject <Dictionary <String, Object> >(k.ToString()); classAvailable.Clear(); foreach (KeyValuePair <String, Object> s in aa) { classAvailable.Add(new ClassItem(s.Key, s.Value.ToString())); // Run on UI Thread } return(true); } else { if (r == null) { r = new ResponsePayload(); r.message = "Socket timeout!"; } currentError = r.message; return(false); } }
public bool login(string username, string password) { Payload p = Payload.makePayload(); p.request = "login"; p.addPayload("username", username); p.addPayload("password", password); p.addPayload("sessionkey", ""); connector.Send(p); ResponsePayload r = connector.waitForPayload(); if (r.status == "success") { identity = r.identity; Object k; r.payload.TryGetValue("sessionid", out k); sessionID = Convert.ToInt32(k); return(true); } else { currentError = r.message; return(false); } }
private void startReceiveLoop() { Console.WriteLine("Now receiving"); while (isConnected) { try { Console.WriteLine("Waiting for next packet... from " + groupEP.Address.ToString() + ":" + groupEP.Port); byte[] bytes = Socket.Receive(ref groupEP); StringBuilder sb = new StringBuilder(); sb.Append(Encoding.ASCII.GetString(bytes, 0, bytes.Length)); Console.WriteLine(sb.ToString()); try { ResponsePayload rp = JsonConvert.DeserializeObject <ResponsePayload>(sb.ToString()); if (queueList > 0) { //while (responseWaiter != null) //{ // //} responseWaiter = rp; } } catch { Console.WriteLine("Received data is not a response payload!"); } try { NotifyPayload r = JsonConvert.DeserializeObject <NotifyPayload>(sb.ToString()); if (r.status == "notify") { var ee = new ConnectorReceiveEventArgs(r); var handler = ReceivedData; if (handler != null) { handler(null, ee); } } } catch (Exception e) { Console.WriteLine("Received data is not a notify payload! " + e.StackTrace); } } catch (SocketException ex) { isConnected = false; Console.WriteLine(ex.StackTrace); } } }
public bool createGroup(String name) { Payload p = makePayload(); p.request = "create_group"; p.addPayload("name", name); connector.Send(p); ResponsePayload r = connector.waitForPayload(); if (r.status == "success") { return(true); } else { currentError = r.message; return(false); } }
public bool register(string username, string password) { Payload p = Payload.makePayload(); p.request = "regist"; p.addPayload("username", username); p.addPayload("password", password); connector.Send(p); ResponsePayload r = connector.waitForPayload(); if (r.status == "success") { return(true); } else { currentError = r.message; return(false); } }
public ResponsePayload waitForPayload() { int i = ++queueList; Task tk = Task.Factory.StartNew(() => { while (responseWaiter == null && isConnected) { } }); tk.Wait(TIMEOUTSEC * i); var r = responseWaiter; if (r == null) { r = new ResponsePayload(); r.message = isConnected ? "Timeout!": "Connection canceled"; } responseWaiter = null; return(r); }
private bool StopTalking() { audioCaller.Close(); connector.ReceivedData -= CancelRequested; //Stop recording Payload p = new Payload(); p.request = "cancel"; p.sessionkey = client.SessionKey; p.sessionid = client.SessionID; p.path = ClassRequested.path.Concat(new String[] {"audio"}).ToList(); Random rnd = new Random(); p.identity = packetIdentity = rnd.Next(Int32.MaxValue); ResponsePayload r = new ResponsePayload(); r.message = "Connection: timeout!"; Task k = Task.Factory.StartNew(() => { r = connector.SendAndReceive(p); }); k.Wait(5000); if (r.status == "success") { return true; } else { client.currentError = r.message; return false; } }
internal bool list() { Payload p = Payload.makePayload(); p.sessionid = this.SessionID; p.request = "ls"; connector.Send(p); ResponsePayload r = connector.waitForPayload(); if (r.status == "success") { var k = r.payload["list"]; var aa = JsonConvert.DeserializeObject<Dictionary<String, Object>>(k.ToString()); classAvailable.Clear (); foreach (KeyValuePair<String, Object> s in aa) { classAvailable.Add(new ClassItem(s.Key, s.Value.ToString())); // Run on UI Thread } return true; } else { if (r == null) { r = new ResponsePayload(); r.message = "Socket timeout!"; } currentError = r.message; return false; } }
public bool CancelRequest() { if (CurrentAsk == null) return false; CurrentAsk.stopListening(); CurrentAsk = null; RaisePropertyChanged("CurrentAsk"); //Send request to remove from queue here! Payload p = new Payload(); p.request = "cancel"; p.sessionkey = client.SessionKey; p.sessionid = client.SessionID; p.path = path.Concat(new String[] {"audio"}).ToList(); Random rnd = new Random(); p.identity = rnd.Next(Int32.MaxValue); ResponsePayload r = new ResponsePayload(); r.message = "Connection: timeout!"; connector.Send (p); return true; }
private void startReceiveLoop() { Console.WriteLine ("Now receiving"); while (isConnected) { try { byte[] bytes = Socket.Receive(ref groupEP); StringBuilder sb = new StringBuilder(); sb.Append(Encoding.ASCII.GetString(bytes, 0, bytes.Length)); Console.WriteLine(sb.ToString()); try { ResponsePayload rp = JsonConvert.DeserializeObject<ResponsePayload>(sb.ToString()); if (queueList > 0) { //while (responseWaiter != null) //{ // //} responseWaiter = rp; } } catch { Console.WriteLine("Received data is not a response payload!"); } try { NotifyPayload r = JsonConvert.DeserializeObject<NotifyPayload>(sb.ToString()); if (r.status == "notify") { var ee = new ConnectorReceiveEventArgs(r); var handler = ReceivedData; if (handler != null) handler(null, ee); } } catch (Exception e) { Console.WriteLine("Received data is not a notify payload! " + e.StackTrace); } } catch (SocketException) { isConnected = false; } } }
public ResponsePayload waitForPayload() { int i = ++queueList; Task tk = Task.Factory.StartNew(() => { while (responseWaiter == null && isConnected) { } }); tk.Wait(TIMEOUTSEC * i); var r = responseWaiter; if (r == null) { r = new ResponsePayload(); r.message = isConnected ? "Timeout!": "Connection canceled"; } responseWaiter = null; return r; }