Esempio n. 1
0
        /// <summary>
        /// Start a websocket for observing order events
        /// </summary>
        public void OrderEventStart(object sender, EventArgs e)
        {
            /* a hack to just reuse the REST API client to sign out websocket headers */
            var    re  = new Requests();
            string url = "wss://api.gemini.com/v1/order/events";

            try
            {
                GeminiClient.Wallet.Authenticate(re, new Gemini.Contracts.PrivateRequest()
                {
                    Request = "/v1/order/events"
                });
                if (GeminiClient.Wallet.Url().Contains("sandbox"))
                {
                    url = "wss://api.sandbox.gemini.com/v1/order/events";
                }
                Gemini.Websocket ws = new Websocket(url, OrderEventCallback, null);

                ws.AddHeader("X-GEMINI-APIKEY", re.Headers["X-GEMINI-APIKEY"]);
                ws.AddHeader("X-GEMINI-PAYLOAD", re.Headers["X-GEMINI-PAYLOAD"]);
                ws.AddHeader("X-GEMINI-SIGNATURE", re.Headers["X-GEMINI-SIGNATURE"]);
                ws.Connect();
                sockets.Add(ws);
            }
            catch (Exception ex)
            {
                Logger.WriteException(Logger.Level.Error, ex);
                System.Windows.Forms.MessageBox.Show(ex.Message, "Error opening websocket");
            }
        }