Injectando dados personalizados em cabeçalhos de clientes Websocket

Tradução automática de Deepl

Personalizar cabeçalhos de cliente WebSocket permite injetar informação específica, preferências, ou requisitos no processo de estabelecimento de conexão WebSocket.

A partir de 4D v20 R3, pode transmitir informação de segurança, dados específicos da aplicação, ou outros dados relevantes para a conexão com o servidor através de cabeçalhos de cliente websocket.

Aqui está tudo o que precisa saber!

Como descrito no post do blogue do cliente Websocket, deve criar uma classe para gerir os eventos websocket.

Essa classe suporta um novo atributo, headers, que é um objeto em que os atributos têm a seguinte sintaxe: headers.key:=value.

Por exemplo, se quiser transmitir um token de autorização para o servidor, é preciso criar uma classe que chamaremos de 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")
   

Consulte a documentação para obter mais detalhes! E sinta-se livre para juntar-se à discussão no 4D Forums.

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.