private void OnDataSent(ConnectionDataEventArgs e) { var handler = DataSent; if (handler != null) handler(this, e); }
/// <summary> /// Parses the incoming data. /// </summary> /// <param name="e"></param> public void Parse(ConnectionDataEventArgs e) { _logger.Verbose("rx: {0}", e.Data.ToEncodedString().PrettifyJson()); var rpcResultHandler = new AsyncCallback( callback => { var asyncData = ((JsonRpcStateAsync)callback); var result = asyncData.Result + "\n"; var response = Encoding.UTF8.GetBytes(result); var context = (SocketServiceContext) asyncData.AsyncState; var miner = (StratumMiner)context.Miner; miner.Connection.Send(response); _logger.Verbose("tx: {0}", result.PrettifyJson()); }); var line = e.Data.ToEncodedString(); line = line.Replace("\n", ""); var rpcRequest = new SocketServiceRequest(line); var rpcContext = new SocketServiceContext(this, rpcRequest); var async = new JsonRpcStateAsync(rpcResultHandler, rpcContext) { JsonRpc = line }; JsonRpcProcessor.Process(Pool.Config.Coin.Name, async, rpcContext); }
private void OnDataReceived(ConnectionDataEventArgs e) { var handler = DataReceived; if (handler != null) handler(this, e); }
/// <summary> /// Client data recieve handler. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnDataReceived(object sender, ConnectionDataEventArgs e) { var connection = (Connection)e.Connection; ((StratumMiner)connection.Client).Parse(e); }