public void TearDown() { client?.Close(); bootstrap?.Stop(); }
private void btnConn_Click(object sender, EventArgs e) { if (_client != null) { _client.Close(); _client = null; } //var headerQuery = new Name var tokenbase64 = string.Empty; try { Convert.FromBase64String(txtToken.Text.Trim()); tokenbase64 = txtToken.Text.Trim(); } catch (Exception exception) { var tokenQuery = HttpUtility.ParseQueryString(txtToken.Text.Trim()); var token = new Token() { Did = Convert.ToInt32(tokenQuery["did"]), Rid = Convert.ToInt32(tokenQuery["rid"]), Uid = tokenQuery["uid"] }; var pbCovnert = new ProtoResponseConvert(); tokenbase64 = Convert.ToBase64String(pbCovnert.SerializeObject(token)); } _client = new PirateXClient($"ps://{txtHost.Text.Trim()}:{txtPort.Text.Trim()}", tokenbase64); _client.Headers = HttpUtility.ParseQueryString(txtHeader.Text.Trim()); if (!string.IsNullOrEmpty(comboBox1.Text)) { _client.DefaultFormat = comboBox1.Text; } //_client.ExHeaders //_client.ExHeaders.Add("deviceid",HttpUtility.UrlEncode(Guid.NewGuid().ToString())); //_client.ExHeaders.Add("phone","windows"); //_client.ExHeaders.Add("os","1.0"); //_client.ExHeaders.Add("net","wlan"); _client.OnOpen += OnOpen; _client.OnError += OnError; _client.OnClosed += OnClosed; _client.OnReceiveMessage += (o, args) => { this.Invoke((EventHandler) delegate { var tin = Convert.ToInt64(args.Package.Headers["_tin_"]); var tout = Convert.ToInt64(args.Package.Headers["_tout_"]); if (Equals(args.Package.Headers["c"], "_CommandList_")) { var list = Encoding.UTF8.GetString(args.Package.ContentBytes).Split(new char[] { ',' }); cbbCMDList.Items.Clear(); foreach (var item in list.OrderBy(s => s)) { cbbCMDList.Items.Add(item); } cbbCMDList.Text = list[0]; } else if (Equals(args.Package.Headers["c"], "_CommandArgs_")) { if (args.Package.ContentBytes.Length > 0) { txtQuery.Text = Encoding.UTF8.GetString(args.Package.ContentBytes).Replace(",", "={xxxxx}&") + "={xxxxx}"; } } this.jsonViewer1.ResponseInfo = args.Package; btnSend.Enabled = true; btnDisconn.Enabled = true; }); }; _client.OnNotified += (o, args) => { this.Invoke((EventHandler) delegate { this.jsonViewer1.ResponseInfo = args.Package; btnSend.Enabled = true; btnDisconn.Enabled = true; }); }; _client.OnResponseProcessed += (o, log) => { this.Invoke((EventHandler) delegate { this.lable_duration.Text = $"{log.Ts} ms"; }); }; _client.OnSend += (o, args) => { this.Invoke((EventHandler) delegate { this.jsonViewer1.NewOut(args.Package.ToRequestPackage()); }); }; _client.Open(); }