PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → se connecter à un websocket STOMP sur SockJS a partir de windev
se connecter à un websocket STOMP sur SockJS a partir de windev
Débuté par ATRM, 08 oct. 2025 09:55 - 2 réponses
Membre enregistré
1 message
Posté le 08 octobre 2025 - 09:55
Bonjour,
Je souhaite me connecter à un serveur de websockets STOMP et SockJS
La doc du serveur donne comme indications:
************************************************************************
SockJS endpoint
The MT1 server provides a specific endpoint to subscribe to a device SockJS topic:
https://www.alge-results.com/devices
You can fetch the SockJS endpoint information as follows:
curl -X GET "https://www.alge-results.com/devices/info"
STOMP topics
In order to receive the device's trigger you can subscribe to various STOMP topics, depending on your use case:
/topic/user/{userId}/devices/trigger
This topic provides access to all triggers of all devices which are associated to the given userId.
/topic/device/{deviceId}/trigger
This topic provides access to all triggers of the given device, identified by deviceId.
************************************************************************
J'ai testé sous windev
-----------------------
WebSocketClientConnecte("client",SocketConnecte_Callback,"alge-results.com",80,"/topic/user/device/xxxxxxxxx/trigger")

PROCÉDURE INTERNE SocketConnecte_Callback( nEvénement entier, sMessage chaîne )
Trace("Retour",nEvénement, sMessage)
FIN
---------------------
j'ai comme message d'erreur
Le serveur de Websocket À renvoyé une Erreur lors du handshake : 301 Moved Permanently.

Etant complètement débutant sur les websockets, je n'ai trouvé aucune information sur la connexion a des serveurs autres que webdev
Si quelqu'un a déjà expérimenté , je suis preneur d'une piste pour continuer
Merci de vos retours

--
JYC
Membre enregistré
2 287 messages
Posté le 08 octobre 2025 - 10:21
Bonjour,

Désolé mais je ne suis pas compétent sur les WebSockets.
Cependant, votre syntaxe ne correspond à aucune de celles proposées :
"/topic/user/device/xxxxxxxxx/trigger" -> "/topic/user/xxxxxxxxx/devices/trigger" ;(
En espérant vous faire avancer...

NB : vous pouvez implémenter le code exemple :
PROCEDURE 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() // Ou Trace("Erreur", sMessage, ErreurInfo())
FIN
FIN


--
Bon dev,
Jean-Pierre
Message modifié, 08 octobre 2025 - 10:22
Posté le 09 octobre 2025 - 09:40
Jean-Pierre BLOCH a écrit :
Bonjour,

Désolé mais je ne suis pas compétent sur les WebSockets.
Cependant, votre syntaxe ne correspond à aucune de celles proposées :
"/topic/user/device/xxxxxxxxx/trigger" -> "/topic/user/xxxxxxxxx/devices/trigger" ;(
En espérant vous faire avancer...

NB : vous pouvez implémenter le code exemple :
PROCEDURE 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() // Ou Trace("Erreur", sMessage, ErreurInfo())
FIN
FIN


--
Bon dev,
Jean-Pierre

Merci d'avoir pris le temps d'une réponse, mai j'ai toujours la réponse code erreur serveur 301 : moved permanently.
Je vais investiguer du côté Alge pour vérifier que leur doc est a jour
Bonne journée