ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Communication / Sockets
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Allows you to establish a non-secure connection (ws://) with a WebSocket server. Once the connection is established, the WebSocket can be handled like a standard socket, thus allowing you to use SocketRead, SocketWrite, SocketClose or SocketExist.
Remarks:
  • This function has two syntaxes. A synchronous (with a timeout and a return value) and an asynchronous connection syntax (with a callback procedure).
  • SocketChangeTransmissionMode will have no effect with a socket created with WebSocketClientConnect. The socket uses the SocketNoEndTag mode.
  • WebSocketClientConnectSSL is used to establish a secure SSL connection (wss://) with a WebSocket server.
Example
// Connects to WebSocket server in synchronous mode
// ws://myserver.com/WW_WebsocketServer
IF WebSocketClientConnect("wbsocket", "myserver.com", 80, "/WW_WebsocketServer") THEN
// Sends a message to the echo server
IF SocketWrite("wbsocket", "Hello world!") THEN
// Retrieves the server response
sMsg is string = SocketRead("wbsocket", True)
ToastDisplay("Server response: " + sMsg)
END
END
// Connects to WebSocket server in asynchronous mode
// ws://192.168.100.1/MyWebSocketServerProject
WebSocketClientConnect("client", WebSocketClientConnect_Callback, ...
"192.168.100.1", 80, "MyWebSocketServerProject")
 
INTERNAL PROCEDURE WebSocketClientConnect_Callback(nEvent, sMessage)
SWITCH nEvent
CASE SocketOpening
SocketWrite("client", "Send message from the browser.")
CASE SocketMessage
Info("Server message received: " + sMessage)
CASE SocketClosing
Info("Socket closed", sMessage)
CASE SocketError
Error("Socket error")
END
END
Syntax
WEBDEV - Browser code This syntax is not available in browser code

Establishing a synchronous connection Hide the details

<Result> = WebSocketClientConnect(<Socket name> , <Server address> [, <Port number> [, <Path> [, <Protocols> [, <Maximum timeout>]]]])
<Result>: Boolean
  • True if the connection was established,
  • False otherwise. If an error occurs, you can get more details on the error with ErrorInfo.
<Socket name>: Character string
Name that will be given to the connection opened on the socket. This name will be used by all socket functions.
<Server address>: Character string
Server address. This address can be given in the following format:
  • IP address in XXX.XXX.XXX.XXX format (125.5.110.100 for example).
  • URL containing the server name (www.windev.com for example). This syntax is recommended.
WINDEV The address can also correspond to the IP address returned by NetIPAddress.
AndroidAndroid Widget The address must be the server IP address (not the server name).
<Port number>: Optional integer
Port number of the socket. By default, this parameter is 80 (HTTP port).
<Path>: Optional character string
Path to the virtual directory of the server (if any). By default, or if this parameter is an empty string (""), the path corresponds to "/".
<Protocols>: Optional character string
List of protocols the server must support to establish the connection (for example: "mqtt,soap"). In this list, the different protocols are separated by a comma (","). A (non-exhaustive) list of protocols can be found here: https://www.iana.org/assignments/websocket/websocket.xml
<Maximum timeout>: Optional integer or optional Duration
Maximum timeout (in milliseconds) for establishing the connection. This parameter can be:
  • an integer corresponding to the number of milliseconds,
  • a Duration variable,
  • the duration in a readable format (e.g., 1 s or 10 ms).
This timeout is set to 5000 milliseconds by default (5 seconds).

Establishing an asynchronous connection Hide the details

WebSocketClientConnect(<Socket name> , <WLanguage procedure> , <Server address> [, <Port> [, <Path> [, <Protocols>]]])
<Socket name>: Character string
Name that will be given to the connection opened on the socket. This name will be used by all socket functions.
<WLanguage procedure>: Procedure name
Name of the procedure called when the connection to the server is established. This procedure can be used to send a message to the server with SocketWrite, for example.
For more details on this procedure, see Parameters of the procedure used by WebSocketClientConnect.
CAUTION: the procedure is called in the application's main thread:
  • You can access UI controls from the procedure.
  • The process should not be too long, since this could block the user.
<Server address>: Character string
Server address. This address can be given in the following format:
  • IP address in XXX.XXX.XXX.XXX format (125.5.110.100 for example).
  • URL containing the server name (www.windev.com for example). This syntax is recommended.
WINDEVWEBDEV - Browser code The address can also correspond to the IP address returned by NetIPAddress.
AndroidAndroid Widget The address must be the server IP address (not the server name).
<Port>: Optional integer
Port number of the socket. By default, this parameter is 443 (HTTPS port).
<Path>: Optional character string
Path to the virtual directory of the server (if any). By default, or if this parameter is an empty string (""), the path corresponds to "/".
<Protocols>: Optional character string
List of protocols the server must support to establish the connection (for example: "mqtt,soap"). In this list, the different protocols are separated by a comma (","). A (non-exhaustive) list of protocols can be found here: https://www.iana.org/assignments/websocket/websocket.xml
Business / UI classification: Business Logic
Component: wd300com.dll
Minimum version required
  • Version 27
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 06/30/2023

Send a report | Local help