JsonRpc 2.0 over sockets request.
コード例 #1
0
 public SocketsRpcContext(IMiner miner, SocketsRpcRequest request)
 {
     this.Miner   = miner;
     this.Request = request;
 }
コード例 #2
0
ファイル: StratumMiner.cs プロジェクト: Ziftr/CoiniumServ
        /// <summary>
        /// Parses the incoming data.
        /// </summary>
        /// <param name="e"></param>
        public void Parse(ConnectionDataEventArgs e)
        {
            Log.Verbose("RPC-client recv:\n{0}", e.Data.ToEncodedString());

            var rpcResultHandler = new AsyncCallback(
                callback =>
                {
                    var asyncData = ((JsonRpcStateAsync)callback);
                    var result = asyncData.Result + "\n"; // quick hack.
                    var response = Encoding.UTF8.GetBytes(result);

                    var context = (SocketsRpcContext) asyncData.AsyncState;
                    var miner = (StratumMiner)context.Miner;

                    miner.Connection.Send(response);

                    Log.Verbose("RPC-client send:\n{0}", result);
                });

            var line = e.Data.ToEncodedString();
            line = line.Replace("\n", ""); // quick hack!

            var rpcRequest = new SocketsRpcRequest(line);
            var rpcContext = new SocketsRpcContext(this, rpcRequest);

            var async = new JsonRpcStateAsync(rpcResultHandler, rpcContext) { JsonRpc = line };
            JsonRpcProcessor.Process(async, rpcContext);
        }
コード例 #3
0
 public SocketsRpcContext(IMiner miner, SocketsRpcRequest request)
 {
     this.Miner = miner;
     this.Request = request;
 }