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
(Lianja) 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
// This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loWs = createobject("CkWebSocket") // 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. loRest = createobject("CkRest") // Connect to wss://stream.binance.com:9443 llSuccess = loRest.Connect("stream.binance.com",9443,.T.,.F.) if (llSuccess = .F.) then ? loRest.LastErrorText release loWs release loRest return endif llSuccess = loWs.UseConnection(loRest) if (llSuccess = .F.) then ? loWs.LastErrorText release loWs release loRest return endif loWs.AddClientHeaders() // Raw streams are accessed at /ws/<streamName> lcResponseBody = loRest.FullRequestNoBody("GET","/ws/btcusdt") if (loRest.LastMethodSuccess = .F.) then ? loRest.LastErrorText release loWs release loRest return endif llSuccess = loWs.ValidateServerHandshake() if (llSuccess <> .T.) then ? loWs.LastErrorText ? lcResponseBody ? loRest.ResponseHeader release loWs release loRest return endif ? lcResponseBody ? loRest.ResponseHeader // POST JSON to subscribe to a stream // { // "method": "SUBSCRIBE", // "params": // [ // "btcusdt@aggTrade", // "btcusdt@depth" // ], // "id": 1 // } loJson = createobject("CkJsonObject") loJson.UpdateString("method","SUBSCRIBE") loJson.UpdateString("params[0]","btcusdt@aggTrade") loJson.UpdateString("params[1]","btcusdt@depth") loJson.UpdateInt("id",1) // Send a full message in a single frame llFinalFrame = .T. llSuccess = loWs.SendFrame(loJson.Emit(),llFinalFrame) if (llSuccess <> .T.) then ? loWs.LastErrorText release loWs release loRest release loJson return endif loJsonTradeData = createobject("CkJsonObject") loJsonTradeData.EmitCompact = .F. // Begin reading the trade stream response. // We'll just read the 1st 10 updates and then exit.. llReceivedFinalFrame = .F. lnNumTradesReceived = 0 do while lnNumTradesReceived < 5 llSuccess = loWs.ReadFrame() if (llSuccess <> .T.) then ? "Failed to receive a frame" ? "ReadFrame fail reason = " + str(loWs.ReadFrameFailReason) ? loWs.LastErrorText release loWs release loRest release loJson release loJsonTradeData return endif // The responses we desire are in Text frames, where the opcode = 1. if (loWs.FrameOpcodeInt = 1) then lcReceivedJson = loWs.GetFrameData() loJsonTradeData.Load(lcReceivedJson) ? loJsonTradeData.Emit() lnNumTradesReceived = lnNumTradesReceived + 1 endif enddo // Close the websocket connection. llSuccess = loWs.SendClose(.T.,1000,"Closing this websocket.") if (llSuccess <> .T.) then ? loWs.LastErrorText release loWs release loRest release loJson release loJsonTradeData return endif // Read the Close response. llSuccess = loWs.ReadFrame() if (llSuccess <> .T.) then ? "ReadFrame fail reason = " + str(loWs.ReadFrameFailReason) ? loWs.LastErrorText release loWs release loRest release loJson release loJsonTradeData return endif ? "Success." // The output of the above code is shown here: release loWs release loRest release loJson release loJsonTradeData |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.