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
(DataFlex) WebSocket Connect through HTTP ProxyThis example shows how to establish a WebSocket connection through an HTTP proxy server.
Use ChilkatAx-win32.pkg Procedure Test Variant vRest Handle hoRest Variant vSocket Handle hoSocket Boolean iBTls Integer iPort Integer iMaxWaitMs Boolean iSuccess Handle hoWs String sResponseBody Integer iStatusCode String sTemp1 Integer iTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // -------------------------------------------------- // This example borrows the code from the REST using HTTP Proxy example. // We first use the Chilkat Socket object to establish a connection to the WebSocket server through an HTTP proxy. // Next, the Rest object uses the Socket object for its connection. // Finally, the WebSocket object uses the Rest object for its connection. // Get Create (RefClass(cComChilkatRest)) To hoRest If (Not(IsComObjectCreated(hoRest))) Begin Send CreateComObject of hoRest End Get Create (RefClass(cComChilkatSocket)) To hoSocket If (Not(IsComObjectCreated(hoSocket))) Begin Send CreateComObject of hoSocket End // Set the HTTP proxy domain or IP address, and port. Set ComHttpProxyHostname Of hoSocket To "192.168.1.79" Set ComHttpProxyPort Of hoSocket To 808 // Provide authentication to the HTTP proxy, if needed. Set ComHttpProxyUsername Of hoSocket To "HTTP_PROXY_LOGIN" Set ComHttpProxyPassword Of hoSocket To "HTTP_PROXY_PASSWORD" Set ComHttpProxyAuthMethod Of hoSocket To "Basic" // Indicate that HTTP requests (i.e. the WebSocket opening handshake) will be sent over the socket. // This is important for how the HTTP proxy connection is established. Set ComHttpProxyForHttp Of hoSocket To True // Connect to the websocket server through the HTTP proxy. Move False To iBTls Move 80 To iPort Move 5000 To iMaxWaitMs Get ComConnect Of hoSocket "some-websocket-server.com" iPort iBTls iMaxWaitMs To iSuccess If (iSuccess <> True) Begin Get ComConnectFailReason Of hoSocket To iTemp1 Showln "Connect Failure Error Code: " iTemp1 Get ComLastErrorText Of hoSocket To sTemp1 Showln sTemp1 Procedure_Return End // Tell the Rest object to use the connected socket. Get pvComObject of hoSocket to vSocket Get ComUseConnection Of hoRest vSocket True To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRest To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatWebSocket)) To hoWs If (Not(IsComObjectCreated(hoWs))) Begin Send CreateComObject of hoWs End // Tell the WebSocket to use this connection. Get pvComObject of hoRest to vRest Get ComUseConnection Of hoWs vRest To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoWs To sTemp1 Showln sTemp1 Procedure_Return End // Add the standard WebSocket open handshake headers that will be needed. // (This adds the required HTTP request headers to the rest object.) Get ComAddClientHeaders Of hoWs To iSuccess // Add any additional headers that might be desired. // Two common WebSocketSpecific headers are "Sec-WebSocket-Protocol" and "Origin". Get ComAddHeader Of hoRest "Sec-WebSocket-Protocol" "x-some-websocket-subprotocol" To iSuccess Get ComAddHeader Of hoRest "Origin" "http://some-websocket-server.com" To iSuccess // Do the open handshake. Get ComFullRequestNoBody Of hoRest "GET" "/something" To sResponseBody Get ComLastMethodSuccess Of hoRest To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoRest To sTemp1 Showln sTemp1 Procedure_Return End // If successful, the HTTP response status code should be 101, // and the response body will be empty. (If it failed, we'll have a look // at the response body..) Get ComResponseStatusCode Of hoRest To iStatusCode Showln "Response status code: " iStatusCode If (iStatusCode <> 101) Begin Showln sResponseBody Showln "-- Failed because of unexpected response status code." Procedure_Return End // We have the expected 101 response, so let's now validate the // contents of the response, such as the value sent by the server in the // Sec-WebSocket-Accept header. Get ComValidateServerHandshake Of hoWs To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoWs To sTemp1 Showln sTemp1 Procedure_Return End Showln "WebSocket connection successful." // The application may now begin sending and receiving frames on the WebSocket connection. // (At this point, we're done with the rest and socket objects...) Showln "Success." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.