Inyección de datos personalizados en las cabeceras de cliente Websocket

Traducido automáticamente de Deepl

Personalizar las cabeceras cliente WebSocket le permite inyectar información específica, preferencias o requerimientos en el proceso de establecimiento de la conexión WebSocket.

A partir de 4D v20 R3, usted puede transmitir información de seguridad, datos específicos de la aplicación, u otros datos relevantes para la conexión con el servidor a través de las cabeceras de cliente websocket.

¡Aquí está todo lo que necesita saber!

Tal y como se describe en la entrada del blog Websocket client, debe crear una clase para gestionar los eventos websocket.

Esta clase soporta un nuevo atributo, headers, que es un objeto donde los atributos tienen esta sintaxis: headers.key:=value.

Por ejemplo, si quieres transmitir un token de autorización al servidor, necesitas crear una clase que llamaremos clase 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")
   

Consulta la documentación para más detalles. Y siéntase libre de unirse a la discusión en los Foros 4D.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se unió al equipo de 4D Program en noviembre de 2016. Como Product Owner, está a cargo de escribir las historias de usuario y luego traducirlas a especificaciones funcionales. Su papel es también asegurarse de que la implementación de la característica entregada cumple con las necesidades del cliente. Después de obtener una licenciatura en Ciencias de la Computación en el CNAM, Fabrice se unió a una pequeña empresa de publicación de software como desarrollador Windev. A continuación, trabajó para diferentes empresas del sector industrial y comercial como desarrollador de Windev y de la web, así como asesor técnico de nuevas funcionalidades.