示例#1
0
        public void ProcessRequest(HttpContext context)
        {
            var clients = WebSocketClientManager.GetInstance().GetAllClients();

            context.Response.ContentType = "text/plain";
            context.Response.Write(string.Format("Getting {0} clients:", clients.Count) + Environment.NewLine);

            clients.ForEach(d => context.Response.Write(d.Id + Environment.NewLine));
        }
示例#2
0
        public override void OnOpen()
        {
            int deviceId = WebSocketContext.QueryString["Id"].ToInt32();

            if (deviceId != ConvertorExtension.ConvertionFailureValue)
            {
                this.Id = deviceId;
                WebSocketClientManager.GetInstance().AddClient(this);
            }
        }
示例#3
0
        public void ProcessRequest(HttpContext context)
        {
            Int32 deviceId = context.Request.Params["DeviceId"].ToInt32();

            if (deviceId != ConvertorExtension.ConvertionFailureValue)
            {
                var client = WebSocketClientManager.GetInstance().GetAllClients().FirstOrDefault(d => d.Id == deviceId);
                if (client != null)
                {
                    client.Send(GetRequestBody(context));
                    context.Response.Write("Ok");
                }
                else
                {
                    context.Response.Write("unable to find web socket client.");
                }
            }
            else
            {
                context.Response.Write("invalid request format.");
            }
        }
示例#4
0
 public override void OnClose()
 {
     WebSocketClientManager.GetInstance().RemoveClient(this);
 }
 static WebSocketClientManager()
 {
     _lockObject = new object();
     _instance   = new WebSocketClientManager();
 }