public override void OnOpen() { MessageManager manager = new MessageManager(); base.OnOpen(); try { string deviceSerial = this.WebSocketContext.Headers.GetValues("device-serial").FirstOrDefault(); WebSocketHandler objDeviceSession = DeviceSessionPool.GetDeviceSession(deviceSerial); manager.PushMessage("OnOpen_1", deviceSerial); if (objDeviceSession == null) { DeviceManager objDeviceManager = new DeviceManager(); if (objDeviceManager.IsDeviceExists(deviceSerial)) { DeviceSessionPool.AddDeviceSession(deviceSerial, this); } } else { DeviceSessionPool.UpdateDeviceSession(deviceSerial, this); } } catch (Exception ex) { manager.PushMessage("OnOpen_exception", ex.Message); base.Send("You are not connected. " + ex.Message); } }
public override void OnClose() { MessageManager manager = new MessageManager(); manager.PushMessage("Closed", DateTime.UtcNow.ToString()); string deviceSerial = this.WebSocketContext.Headers.GetValues("device-serial").FirstOrDefault(); DeviceSessionPool.RemoveDeviceSession(deviceSerial); // Free resources, close connections, etc. base.OnClose(); }
public HttpResponseMessage Control(DeviceAction deviceAction) { try { var deviceSession = DeviceSessionPool.GetDeviceSession(deviceAction.DeviceSerial); deviceSession.Send((new JavaScriptSerializer().Serialize(deviceAction))); return(Request.CreateResponse(HttpStatusCode.OK, true)); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.OK, false)); } }
public HttpResponseMessage ResetWifi(DeviceAction deviceAction) { try { deviceAction.Action = "RESET"; var deviceSession = DeviceSessionPool.GetDeviceSession(deviceAction.DeviceSerial); deviceSession.Send((new JavaScriptSerializer().Serialize(deviceAction))); return(Request.CreateResponse(HttpStatusCode.OK, true)); } catch { return(Request.CreateResponse(HttpStatusCode.OK, false)); } }
public HttpResponseMessage IsOnline(string deviceSerial) { try { if (DeviceSessionPool.GetDeviceSession(deviceSerial) == null) { return(Request.CreateResponse(HttpStatusCode.OK, false)); } else { return(Request.CreateResponse(HttpStatusCode.OK, true)); } } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public HttpResponseMessage CheckStatus(string deviceSerial) { try { var deviceAction = new DeviceAction { Action = "STATUS", DeviceSerial = deviceSerial }; var deviceSession = DeviceSessionPool.GetDeviceSession(deviceSerial); deviceSession.Send((new JavaScriptSerializer().Serialize(deviceAction))); return(Request.CreateResponse(HttpStatusCode.OK, DeviceSessionPool.deviceStatus[deviceSerial])); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }