DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Sockets
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Permet d'établir une connexion non sécurisée (ws://) avec un serveur de Websocket. Une fois la connexion ouverte, le websocket se comporte comme un socket classique, il est donc possible d'utiliser les fonctions SocketLit, SocketEcrit, SocketFerme ou SocketExiste.
Remarques :
  • Cette fonction possède deux syntaxes. Une syntaxe de connexion synchrone (avec un timeout et une valeur de retour) ainsi qu'une syntaxe asynchrone (avec une procédure callback).
  • Avec un socket créé par la fonction WebSocketClientConnecte, la fonction SocketChangeModeTransmission n'aura aucun effet. Le socket fonctionne forcement en mode SocketSansMarqueurFin.
  • La fonction WebSocketClientConnecteSSL permet d'établir une connexion sécurisée SSL (wss://) avec un serveur de Websocket.
Exemple
// Se connecte au serveur de websocket en mode SYNCHRONE
// ws://monserveur.com/WW_WebsocketServeur
SI WebSocketClientConnecte("wbsocket", "monserveur.com", 80, "/WW_WebsocketServeur") ALORS
// Envoie une chaîne au serveur d'echo
SI SocketEcrit("wbsocket","Bonjour le monde !") ALORS
// Récupère la réponse du serveur
sMsg est une chaîne = SocketLit("wbsocket", Vrai)
ToastAffiche("réponse du serveur : " + sMsg)
FIN
FIN
// Se connecte au serveur de websocket en mode ASYNCHRONE
// ws://192.168.100.1/MonProjetServeurWebSocket
WebSocketClientConnecte("client", WebSocketClientConnecte_Callback, ...
"192.168.100.1", 80, "MonProjetServeurWebSocket")
 
PROCÉDURE INTERNE WebSocketClientConnecte_Callback(nEvénement, sMessage)
SELON nEvénement
CAS SocketOuverture
SocketEcrit("client", "Envoi message depuis le navigateur.")
CAS SocketMessage
Info("Réception d'un message serveur : " + sMessage)
CAS SocketFermeture
Info("Fermeture du socket", sMessage)
CAS SocketErreur
Erreur("Erreur du socket")
FIN
FIN
Syntaxe
WEBDEV - Code Navigateur Cette syntaxe n'est pas disponible en code navigateur

Etablir une connexion en mode synchrone Masquer les détails

<Résultat> = WebSocketClientConnecte(<Nom du socket> , <Adresse du serveur> [, <Numéro de port> [, <Chemin> [, <Protocoles> [, <Délai maximal>]]]])
<Résultat> : Booléen
  • Vrai si la connexion a été réalisée,
  • Faux dans le cas contraire. En cas d'erreur, il est possible de connaître le détail de l'erreur grâce à la fonction ErreurInfo.
<Nom du socket> : Chaîne de caractères
Nom à donner à la connexion ouverte sur le socket. Ce nom sera utilisé dans toutes les fonctions socket.
<Adresse du serveur> : Chaîne de caractères
Adresse du poste serveur. Cette adresse peut être donnée sous la forme :
  • adresse IP au format XXX.XXX.XXX.XXX (par exemple 125.5.110.100).
  • URL contenant le nom du serveur (par exemple www.pcsoft.fr). Cette syntaxe est conseillée.
WINDEV L'adresse peut également correspondre à l'adresse IP obtenue par la fonction NetAdresseIP.
AndroidWidget Android L'adresse doit être l'adresse IP du serveur (et non le nom du serveur).
<Numéro de port> : Entier optionnel
Numéro de port du socket. Par défaut, ce paramètre correspond à 80 (port du HTTP).
<Chemin> : Chaîne de caractères optionnelle
Chemin vers l'éventuel répertoire virtuel du serveur. Par défaut ou si ce paramètre vaut chaîne vide (""), ce chemin correspondra à "/".
<Protocoles> : Chaîne de caractères optionnelle
Liste des protocoles que doit supporter le serveur pour établir la connexion (par exemple : "mqtt,soap"). Dans cette liste, les différents protocoles sont séparés par une virgule (","). Une liste (non exhaustive) des protocoles peut être trouvée ici : https://www.iana.org/assignments/websocket/websocket.xml
<Délai maximal> : Entier optionnel ou Durée optionnelle
Délai maximal (en millisecondes) accordé pour la réalisation de la connexion. Ce paramètre peut correspondre à :
  • un entier correspondant au nombre de millisecondes,
  • une variable de type Durée,
  • l'indication directe de la durée (par exemple 1 s ou 10 ms).
Par défaut, cette attente est égale à 5 000 millisecondes (5 secondes).

Etablir une connexion en mode asynchrone Masquer les détails

WebSocketClientConnecte(<Nom du socket> , <Procédure WLangage> , <Adresse du serveur> [, <Port> [, <Chemin> [, <Protocoles>]]])
<Nom du socket> : Chaîne de caractères
Nom à donner à la connexion ouverte sur le socket. Ce nom sera utilisé dans toutes les fonctions socket.
<Procédure WLangage> : Nom de procédure
Cette procédure est appelée une fois que la connexion au serveur a été effectuée. Cette procédure permet par exemple d'envoyer un message au serveur à l'aide de la fonction SocketEcrit.
Pour plus de détails sur cette procédure, consultez Paramètres de la procédure utilisée par la fonction WebSocketClientConnecte.
ATTENTION : la procédure est appelée dans le thread principal de l'application :
  • Il est possible d'accéder aux champs de l'UI depuis la procédure.
  • Le traitement ne doit pas être trop long au risque de bloquer l'utilisateur.
<Adresse du serveur> : Chaîne de caractères
Adresse du poste serveur. Cette adresse peut être donnée sous la forme :
  • adresse IP au format XXX.XXX.XXX.XXX (par exemple 125.5.110.100).
  • URL contenant le nom du serveur (par exemple www.pcsoft.fr). Cette syntaxe est conseillée.
WINDEVWEBDEV - Code Navigateur L'adresse peut également correspondre à l'adresse IP obtenue par la fonction NetAdresseIP.
AndroidWidget Android L'adresse doit être l'adresse IP du serveur (et non le nom du serveur).
<Port> : Entier optionnel
Numéro de port du socket. Par défaut, ce paramètre correspond à 443 (port du HTTPS).
<Chemin> : Chaîne de caractères optionnelle
Chemin vers l'éventuel répertoire virtuel du serveur. Par défaut ou si ce paramètre vaut chaîne vide (""), ce chemin correspondra à "/".
<Protocoles> : Chaîne de caractères optionnelle
Liste des protocoles que doit supporter le serveur pour établir la connexion (par exemple : "mqtt,soap"). Dans cette liste, les différents protocoles sont séparés par une virgule (","). Une liste (non exhaustive) des protocoles peut être trouvée ici : https://www.iana.org/assignments/websocket/websocket.xml
Classification Métier / UI : Code métier
Composante : wd290com.dll
Version minimum requise
  • Version 27
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 20/04/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale