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) Duplicate Python websocketsSee more WebSocket ExamplesDemonstrates how to duplicate the following Python client-side websocket snippet: async with websockets.connect('ws://192.168.1.35/websocket') as websocket: await websocket.send("http.controller_login:username=xxx&password=xxxxx") response = await websocket.recv()
integer li_rc oleobject loo_Rest integer li_Success oleobject loo_Ws string ls_ResponseBody integer li_StatusCode integer li_FinalFrame string ls_ReceivedStr // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // In Python, the following line of code does more than just connect: // // websockets.connect('ws://192.168.1.35/websocket') // // It is connecting to 192.168.1.35 without using TLS. If the URI starts with "wss://", then TLS should be used. // But this URI begins with just "ws:/", so no TLS. // Also, after connecting, a GET request is sent to the /websocket endpoint. // In summary, the websockets.connect function is establishing the connection and it sends a GET request. // First establish the connection. // No TLS, use the default HTTP port 80. loo_Rest = create oleobject // Use "Chilkat_9_5_0.Rest" for versions of Chilkat < 10.0.0 li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest") if li_rc < 0 then destroy loo_Rest MessageBox("Error","Connecting to COM object failed") return end if li_Success = loo_Rest.Connect("192.168.1.35",80,0,0) if li_Success <> 1 then Write-Debug loo_Rest.LastErrorText destroy loo_Rest return end if loo_Ws = create oleobject // Use "Chilkat_9_5_0.WebSocket" for versions of Chilkat < 10.0.0 li_rc = loo_Ws.ConnectToNewObject("Chilkat.WebSocket") // Tell the WebSocket to use this connection. li_Success = loo_Ws.UseConnection(loo_Rest) if li_Success <> 1 then Write-Debug loo_Ws.LastErrorText destroy loo_Rest destroy loo_Ws return end if // Add the standard WebSocket open handshake headers that will be needed. // (This adds the required HTTP request headers to the rest object.) loo_Ws.AddClientHeaders() // Now send the GET request to /websockets. ls_ResponseBody = loo_Rest.FullRequestNoBody("GET","/websockets") if loo_Rest.LastMethodSuccess <> 1 then Write-Debug loo_Rest.LastErrorText destroy loo_Rest destroy loo_Ws return end if // 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..) li_StatusCode = loo_Rest.ResponseStatusCode Write-Debug "Response status code: " + string(li_StatusCode) if li_StatusCode <> 101 then Write-Debug ls_ResponseBody Write-Debug "-- Failed because of unexpected response status code." destroy loo_Rest destroy loo_Ws return end if // We have the expected 101 response, so let's now validate the // contents of the response. li_Success = loo_Ws.ValidateServerHandshake() if li_Success <> 1 then Write-Debug loo_Ws.LastErrorText destroy loo_Rest destroy loo_Ws return end if Write-Debug "WebSocket connection successful." // The application may now begin sending and receiving frames on the WebSocket connection. // The 1st frame sent by the Python snippet is: // // websocket.send("http.controller_login:username=xxx&password=xxxxx") // // Send the same using Chilkat, and get the response. li_FinalFrame = 1 li_Success = loo_Ws.SendFrame("http.controller_login:username=xxx&password=xxxxx",li_FinalFrame) if li_Success <> 1 then Write-Debug loo_Ws.LastErrorText destroy loo_Rest destroy loo_Ws return end if // Read an incoming frame. 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_Rest destroy loo_Ws return end if // Show the string that was received. ls_ReceivedStr = loo_Ws.GetFrameData() Write-Debug "Received: " + ls_ReceivedStr // Continue with whatever additional communications are desired... // .... // destroy loo_Rest destroy loo_Ws |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.