|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (PowerShell) Subscribe to Multiple Bitfinex Tickers on One ConnectionSubscribes to multiple ticker symbols on the public Bitfinex websocket ticker channel and receives ticker updates. 
 Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll" # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $ws = New-Object Chilkat.WebSocket # 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. $rest = New-Object Chilkat.Rest # Connect to api.bitfinex.com $success = $rest.Connect("api.bitfinex.com",443,$true,$false) $ws.UseConnection($rest) $ws.AddClientHeaders() $responseBody = $rest.FullRequestNoBody("GET","/ws") $success = $ws.ValidateServerHandshake() if ($success -ne $true) { $($ws.LastErrorText) $($responseBody) $($rest.ResponseHeader) exit } # After connecting, the bitfinex websocket server will send # an info message that contains the actual version of the websocket stream. # Receive that message.. $success = $ws.ReadFrame() if ($success -ne $true) { $("Failed to receive a frame") $("ReadFrame fail reason = " + $ws.ReadFrameFailReason) $($ws.LastErrorText) exit } # We should get this: # {"event":"info","version":1.1,"platform":{"status":1}} $($ws.GetFrameData()) # Subscribe to the BTCUSD ticker feed. # See https://docs.bitfinex.com/docs for more information. $json1 = New-Object Chilkat.JsonObject $json1.AppendString("event","subscribe") $json1.AppendString("channel","ticker") $json1.AppendString("pair","BTCUSD") $finalFrame = $true $success = $ws.SendFrame($json1.Emit(),$finalFrame) # Subscribe to the ETHUSD ticker feed. $json2 = New-Object Chilkat.JsonObject $json2.AppendString("event","subscribe") $json2.AppendString("channel","ticker") $json2.AppendString("pair","ETHUSD") $success = $ws.SendFrame($json2.Emit(),$finalFrame) # Begin reading the ticker feed. # / This will include a single confirmation response for each subscription. # We'll just read the 1st 5 updates and then exit.. $receivedFinalFrame = $false $numUpdatesReceived = 0 while ($numUpdatesReceived -lt 7) { $success = $ws.ReadFrame() if ($success -ne $true) { $("Failed to receive a frame") $("ReadFrame fail reason = " + $ws.ReadFrameFailReason) $($ws.LastErrorText) exit } # The responses we desire are in Text frames, where the opcode = 1. if ($ws.FrameOpcodeInt -eq 1) { $receivedText = $ws.GetFrameData() $($receivedText) # Should receive a line of text such as this: # [2751,7349,36.34269559,7349.1,41.01777063,-116.2,-0.0156,7349.1,22188.26055319,7560,7270.5] # Initially, a single confirmation response for each subscription would be received, such as this: # {"event":"subscribed","channel":"ticker","chanId":810,"pair":"BTCUSD"} $numUpdatesReceived = $numUpdatesReceived + 1 } } # This is sample output: # You can see that the 1st message received is the subscription confirmation for the BTCUSD subscribe request. # The next message is a BTCUSD ticker update. # The next message is the confirmation for the ETHUSD subscription. # The next message is an ETHUSD update. # The BTCUSD channel ID is "537", and the ETHUSD channel ID is "700". The channel IDs are provided in the # subscription confirmation messages. Each ticker update begins with the channel ID.. # {"event":"subscribed","channel":"ticker","chanId":537,"pair":"BTCUSD"} # [537,6457.9,79.59102302,6458,22.49395741,-24.1,-0.0037,6457.9,13644.52820029,6540,6370.76958739] # {"event":"subscribed","channel":"ticker","chanId":700,"pair":"ETHUSD"} # [700,496.9,247.24493326,496.92,284.09636979,-2.47,-0.0049,496.9,74154.05945261,502.85,486.96] # [537,"hb"] # [700,"hb"] # [700,496.92,233.34338276,496.93,431.78867277,-2.45,-0.0049,496.92,74167.99173586,502.85,486.96] # Close the websocket connection. $success = $ws.SendClose($true,1000,"Closing this websocket.") if ($success -ne $true) { $($ws.LastErrorText) exit } # Read the Close response. $success = $ws.ReadFrame() if ($success -ne $true) { $("ReadFrame fail reason = " + $ws.ReadFrameFailReason) $($ws.LastErrorText) exit } $("Success.") | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.