Injecter des données personnalisées dans les en-têtes des clients Websocket

Traduit automatiquement de Deepl

La personnalisation des en-têtes client WebSocket vous permet d’injecter des informations, des préférences ou des exigences spécifiques dans le processus d’établissement de la connexion WebSocket.

À partir de 4D v20 R3, vous pouvez transmettre des informations de sécurité, des données spécifiques à l’application ou d’autres données relatives à la connexion au serveur par le biais d’en-têtes client websocket.

Voici tout ce que vous devez savoir !

Comme décrit dans l’article de blog Websocket client, vous devez créer une classe pour gérer les événements websocket.

Cette classe supporte un nouvel attribut, headers, qui est un objet dont les attributs ont la syntaxe suivante : headers.key:=value.

Par exemple, si vous voulez transmettre un jeton d’autorisation au serveur, vous devez créer une classe que nous appellerons la classe WSConnectionHandler:

Class constructor($myToken:Text)

// Creation of the headers sent to the server
This.headers:=New object ("x-authorization";$myToken)
// Cookie header should use this syntax:
This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry"

Function onMessage($ws : Object; $event : Object)
   Form.messages.push($event.data)

Function onTerminate($ws : Object; $event : Object)
   Form.messages.push("Connection closed")
   

Consultez la documentation pour plus de détails ! Et n’hésitez pas à participer à la discussion sur les forums 4D.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.