private void Run(string ip, string user, string pass) { while (_running) { try { var url = GetImageUrl(ip, user, pass); if (!string.IsNullOrEmpty(url)) { var image = GetImage(url, user, pass); if (image != null) { OnImageArrived?.Invoke(image); } } else { OnImageArrived.Invoke(null); } } catch (Exception ex) { Console.WriteLine(ex.Message); Task.Delay(SLEEP_TIME).Wait(); } } }
protected override void Execute(QueCmd cmd) { switch (cmd.cmd_type) { case QueCmd.QCType.QC_IMAGE_DATA: { var buff = cmd.data as byte[]; MemoryStream buf = new MemoryStream(buff); Image image = Image.FromStream(buf, true); OnImageArrived?.Invoke(this, image); string data2 = "data:image/jpg;base64," + Convert.ToBase64String(buff); client_sockets.ForEach(s => s.Send(data2)); } break; case QueCmd.QCType.QC_CLINET_OPEN: { log_.Debug("WebSocket Open"); client_sockets.Add(cmd.data as IWebSocketConnection); } break; case QueCmd.QCType.QC_CLINET_CLOSE: { log_.Debug("WebSocket Close"); client_sockets.Remove(cmd.data as IWebSocketConnection); } break; default: break; } }