Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerBuilder) WebSocket Binance Trade Stream (subscribe and receive updates)Subscribe to a binance trade stream and receive updates. For more information, see https://binance-docs.github.io/apidocs/spot/en/#live-subscribing-unsubscribing-to-streams
integer li_rc oleobject loo_Ws oleobject loo_Rest integer li_Success string ls_ResponseBody oleobject loo_Json integer li_FinalFrame oleobject loo_JsonTradeData integer li_ReceivedFinalFrame integer li_NumTradesReceived string ls_ReceivedJson // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loo_Ws = create oleobject // Use "Chilkat_9_5_0.WebSocket" for versions of Chilkat < 10.0.0 li_rc = loo_Ws.ConnectToNewObject("Chilkat.WebSocket") if li_rc < 0 then destroy loo_Ws MessageBox("Error","Connecting to COM object failed") return end if // For brevity, this example does not check for errors when etablishing the WebSocket connection. // See Establish WebSocket Connection for more complete sample code for making the connection. loo_Rest = create oleobject // Use "Chilkat_9_5_0.Rest" for versions of Chilkat < 10.0.0 li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest") // Connect to wss://stream.binance.com:9443 li_Success = loo_Rest.Connect("stream.binance.com",9443,1,0) if li_Success = 0 then Write-Debug loo_Rest.LastErrorText destroy loo_Ws destroy loo_Rest return end if li_Success = loo_Ws.UseConnection(loo_Rest) if li_Success = 0 then Write-Debug loo_Ws.LastErrorText destroy loo_Ws destroy loo_Rest return end if loo_Ws.AddClientHeaders() // Raw streams are accessed at /ws/<streamName> ls_ResponseBody = loo_Rest.FullRequestNoBody("GET","/ws/btcusdt") if loo_Rest.LastMethodSuccess = 0 then Write-Debug loo_Rest.LastErrorText destroy loo_Ws destroy loo_Rest return end if li_Success = loo_Ws.ValidateServerHandshake() if li_Success <> 1 then Write-Debug loo_Ws.LastErrorText Write-Debug ls_ResponseBody Write-Debug loo_Rest.ResponseHeader destroy loo_Ws destroy loo_Rest return end if Write-Debug ls_ResponseBody Write-Debug loo_Rest.ResponseHeader // POST JSON to subscribe to a stream // { // "method": "SUBSCRIBE", // "params": // [ // "btcusdt@aggTrade", // "btcusdt@depth" // ], // "id": 1 // } loo_Json = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") loo_Json.UpdateString("method","SUBSCRIBE") loo_Json.UpdateString("params[0]","btcusdt@aggTrade") loo_Json.UpdateString("params[1]","btcusdt@depth") loo_Json.UpdateInt("id",1) // Send a full message in a single frame li_FinalFrame = 1 li_Success = loo_Ws.SendFrame(loo_Json.Emit(),li_FinalFrame) if li_Success <> 1 then Write-Debug loo_Ws.LastErrorText destroy loo_Ws destroy loo_Rest destroy loo_Json return end if loo_JsonTradeData = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_JsonTradeData.ConnectToNewObject("Chilkat.JsonObject") loo_JsonTradeData.EmitCompact = 0 // Begin reading the trade stream response. // We'll just read the 1st 10 updates and then exit.. li_ReceivedFinalFrame = 0 li_NumTradesReceived = 0 do while li_NumTradesReceived < 5 li_Success = loo_Ws.ReadFrame() if li_Success <> 1 then Write-Debug "Failed to receive a frame" Write-Debug "ReadFrame fail reason = " + string(loo_Ws.ReadFrameFailReason) Write-Debug loo_Ws.LastErrorText destroy loo_Ws destroy loo_Rest destroy loo_Json destroy loo_JsonTradeData return end if // The responses we desire are in Text frames, where the opcode = 1. if loo_Ws.FrameOpcodeInt = 1 then ls_ReceivedJson = loo_Ws.GetFrameData() loo_JsonTradeData.Load(ls_ReceivedJson) Write-Debug loo_JsonTradeData.Emit() li_NumTradesReceived = li_NumTradesReceived + 1 end if loop // Close the websocket connection. li_Success = loo_Ws.SendClose(1,1000,"Closing this websocket.") if li_Success <> 1 then Write-Debug loo_Ws.LastErrorText destroy loo_Ws destroy loo_Rest destroy loo_Json destroy loo_JsonTradeData return end if // Read the Close response. li_Success = loo_Ws.ReadFrame() if li_Success <> 1 then Write-Debug "ReadFrame fail reason = " + string(loo_Ws.ReadFrameFailReason) Write-Debug loo_Ws.LastErrorText destroy loo_Ws destroy loo_Rest destroy loo_Json destroy loo_JsonTradeData return end if Write-Debug "Success." // The output of the above code is shown here: destroy loo_Ws destroy loo_Rest destroy loo_Json destroy loo_JsonTradeData |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.