public string CommandWaitPolling(string deviceId, int timeout) { RabbitQueue rabbit = new RabbitQueue(); TimerCallback tm = Count; JsonStrings.Add(deviceId, rabbit.Consumer(deviceId)); Connections.Add(deviceId); var timer = new Timer(tm, deviceId, timeout, timeout); while (JsonStrings[deviceId] == null) { // loop } timer.Dispose(); Connections.Remove(deviceId); return ""; }
public ActionResult Index(string deviceId, string command) { RabbitQueue rabbit = new RabbitQueue(); CommandValidation validation = new CommandValidation(); if (validation.Validation(command)) { rabbit.Producer(deviceId, command); rabbit.CreateTimeout(deviceId); if (LongPolling.Connections.Contains(deviceId)) LongPolling.JsonStrings[deviceId] = (rabbit.Consumer(deviceId)); } else { return new HttpStatusCodeResult(400, "Validation error"); } return new HttpStatusCodeResult(202, "Accepted"); }