Example #1
0
        /// <summary>
        /// websocket open handle
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnOpen(object sender, EventArgs e)
        {
            logger.Log(Log.LogLevel.Info, "WebSocket opened");
            isConnected = true;

            if (accessKey != null && secretKey != null)
            {
                if (beSpot)
                {
                    string       timestamp = DateTime.UtcNow.ToString("s");
                    WSChAuthData auth      = new WSChAuthData()
                    {
                        param = new WSChAuthData.Params()
                        {
                            accessKey = accessKey, timestamp = timestamp
                        }
                    };

                    var sign = new Signer(secretKey);

                    var req = new GetRequest()
                              .AddParam("accessKey", auth.param.accessKey)
                              .AddParam("signatureMethod", auth.param.signatureMethod)
                              .AddParam("signatureVersion", auth.param.signatureVersion)
                              .AddParam("timestamp", auth.param.timestamp);

                    string signature = sign.Sign("GET", host, path, req.BuildParams());
                    auth.param.signature = signature;

                    string auth_str = JsonConvert.SerializeObject(auth);
                    websocket.Send(auth_str);
                    logger.Log(Log.LogLevel.Info, $"websocket has send data: {auth_str}");
                }
                else
                {
                    string       timestamp = DateTime.UtcNow.ToString("s");
                    WSOpAuthData auth      = new WSOpAuthData()
                    {
                        accessKeyId = accessKey, timestamp = timestamp, cid = "1111"
                    };

                    var sign = new Signer(secretKey);

                    var req = new GetRequest()
                              .AddParam("AccessKeyId", auth.accessKeyId)
                              .AddParam("SignatureMethod", auth.signatureMethod)
                              .AddParam("SignatureVersion", auth.signatureVersion)
                              .AddParam("Timestamp", auth.timestamp);

                    string signature = sign.Sign("GET", host, path, req.BuildParams());
                    auth.signature = signature;

                    string auth_str = JsonConvert.SerializeObject(auth);
                    websocket.Send(auth_str);
                    logger.Log(Log.LogLevel.Info, $"websocket has send data: {auth_str}");
                }
            }
            websocket.Send(subStr);
            logger.Log(Log.LogLevel.Info, $"websocket has send data: {subStr}");
        }
Example #2
0
        /// <summary>
        /// websocket open handle
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void _WebSocket_OnOpen(object sender, EventArgs e)
        {
            _logger.Log(Log.LogLevel.Info, "WebSocket opened");
            _canWork = true;

            if (_accessKey != null && _secretKey != null)
            {
                string timestamp = DateTime.UtcNow.ToString("s");
                var    sign      = new Signer(_secretKey);

                var req = new GetRequest()
                          .AddParam("AccessKeyId", _accessKey)
                          .AddParam("SignatureMethod", "HmacSHA256")
                          .AddParam("SignatureVersion", "2")
                          .AddParam("Timestamp", timestamp);

                string     signature = sign.Sign("GET", _host, _path, req.BuildParams());
                WSAuthData auth      = new WSAuthData()
                {
                    accessKeyId = _accessKey, signature = signature, timestamp = timestamp
                };

                string auth_str = JsonConvert.SerializeObject(auth);
                _WebSocket.Send(auth_str);
                _all_sub_strs.Add(auth_str);
                _canWork = false;
            }
        }
Example #3
0
        public string Build(string method, string path, DateTime utcDateTime, GetRequest request)
        {
            string strDateTime = utcDateTime.ToString("s");

            var req = new GetRequest(request)
                      .AddParam(_aKKey, _aKValue)
                      .AddParam(_sMKey, _sMVaue)
                      .AddParam(_sVKey, _sVValue)
                      .AddParam(_tKey, strDateTime);

            string signature = _signer.Sign(req.BuildParams());

            string url = $"https://{_host}{path}?{req.BuildParams()}&Signature={Uri.EscapeDataString(signature)}";

            return(url);
        }
        public void BuildParams_NullParam_ReturnEmpty()
        {
            var request = new GetRequest();

            string result = request.BuildParams();

            Assert.Equal("", result);
        }
        public void BuildParams_ConcatedParam_ReturnConcatedPair()
        {
            var request1 = new GetRequest().AddParam("key1", "value1");
            var request2 = new GetRequest(request1).AddParam("key2", "value2");

            string result = request2.BuildParams();

            Assert.Equal("key1=value1&key2=value2", result);
        }
Example #6
0
        public string Build(string method, string path, GetRequest query = null)
        {
            string strDateTime = DateTime.UtcNow.ToString("s");
            var    req         = new GetRequest(query)
                                 .AddParam(_aKKey, _aKValue)
                                 .AddParam(_sMKey, _sMVaue)
                                 .AddParam(_sVKey, _sVValue)
                                 .AddParam(_tKey, strDateTime);
            string to_sign_str = req.BuildParams();

            string signature = _signer.Sign(method, _host, path, to_sign_str);

            string options = req.BuildParams() + "&Signature=" + Uri.EscapeDataString(signature);

            string url = $"{Host.HTTP_PRO}://{_host}{path}?{options}";

            return(url);
        }
Example #7
0
        public string Build(string path, GetRequest query = null)
        {
            string options = string.Empty;

            if (query != null)
            {
                options = $"?{query.BuildParams()}";
            }
            return($"{Host.HTTP_PRO}://{_host}{path}{options}");
        }
 public string Build(string path, GetRequest request = null)
 {
     if (request != null)
     {
         return($"https://{_host}{path}?{request.BuildParams()}");
     }
     else
     {
         return($"https://{_host}{path}");
     }
 }
        public void BuildParams_ThreeParam_ReturnOrderedThreePairs()
        {
            var request = new GetRequest()
                          .AddParam("AccessKey", "value1")
                          .AddParam("SignatureMethod", "value2")
                          .AddParam("account-id", "value3");

            string result = request.BuildParams();

            Assert.Equal("AccessKey=value1&SignatureMethod=value2&account-id=value3", result);
        }
        public string BuildSign(DateTime utcDateTime)
        {
            string strDateTime = utcDateTime.ToString("s");

            var request = new GetRequest()
                          .AddParam("AccessKeyId", _publicKey)
                          .AddParam("SignatureMethod", "HmacSHA256")
                          .AddParam("SignatureVersion", "2")
                          .AddParam("Timestamp", strDateTime);

            string signature = _signer.Sign("GET", _host, _path, request.BuildParams());

            var auth = new WebSocketAuthenticationRequestFutures
            {
                AccessKeyId = _publicKey,
                Timestamp   = strDateTime,
                Signature   = signature
            };

            return(auth.ToJson());
        }
        public string Build(DateTime utcDateTime)
        {
            string strDateTime = utcDateTime.ToString("s");

            var request = new GetRequest()
                          .AddParam(_aKKey, _aKValue)
                          .AddParam(_sMKey, _sMVaue)
                          .AddParam(_sVKey, _sVValue)
                          .AddParam(_tKey, strDateTime);

            string signature = _signer.Sign("GET", _host, _path, request.BuildParams());

            var auth = new WebSocketAuthenticationRequest
            {
                AccessKeyId = _aKValue,
                Timestamp   = strDateTime,
                Signature   = signature
            };

            return(auth.ToJson());
        }
Example #12
0
        public string Build(DateTime utcDateTime)
        {
            string strDateTime = utcDateTime.ToString("s");

            var request = new GetRequest()
                          .AddParam(_aKKey, _aKValue)
                          .AddParam(_sMKey, _sMVaue)
                          .AddParam(_sVKey, _sVValue)
                          .AddParam(_tKey, strDateTime);

            string signature = _signer.Sign(request.BuildParams());

            var auth = new WebSocketAuthenticationRequestV2
            {
                @params = new WebSocketAuthenticationRequestV2.Params
                {
                    apiKey    = _aKValue,
                    timestamp = strDateTime,
                    signature = signature
                }
            };

            return(auth.ToJson());
        }
Example #13
0
        public string BuildSign(DateTime utcDateTime)
        {
            string strDateTime = utcDateTime.ToString("s");

            var request = new GetRequest()
                          .AddParam("accessKey", _publicKey)
                          .AddParam("signatureMethod", "HmacSHA256")
                          .AddParam("signatureVersion", "2.1")
                          .AddParam("timestamp", strDateTime);

            string signature = _signer.Sign("GET", _host, _path, request.BuildParams());

            var auth = new WebSocketAuthenticationRequestV2
            {
                @params = new WebSocketAuthenticationRequestV2.Params
                {
                    accessKey = _publicKey,
                    timestamp = strDateTime,
                    signature = signature
                }
            };

            return(auth.ToJson());
        }