Cliente para WebSockets basado en CSP

Solapas principales

Los WebSockets, como tecnología de comunicación, están ganando una importancia cada vez mayor.
En el namespace SAMPLES puedes encontrar un buen ejemplo para ejecutar un WebSocket Server.
También hay un útil ejemplo para un Browser Client, pero sigue estando en el navegador.

La cuestión es:
¿Cómo consumir la salida de un WebSocket Server en tu aplicación?

<--break->Puedes optar por el enfoque de ingeniero y usar las herramientas y clases disponibles para gestionar todo alrededor de la protocol switching, encoding, cifrado... Está bien si puedes conseguirlo y si estás dispuesto a invertir el tiempo necesario y encuentras un patrocinador para financiarlo.

Por otro lado, es reinventar la rueda. Esto ya funciona en casi cualquier navegador.
Por ejemplo, JavaScript tiene unas librerías excelentes y comprobadas, para ayudarte en lo que necesites.

Así que analicé con atención la página de CSP incluída en SAMPLES y la modifiqué para que gestione la solicitud y devuelva el resultado al servidor de Caché usando el viejo y querido Hyperevent.

2 problemas requirieron más investigación:

  • ¿Cómo lanzar la página al navegador sin intervención manual?
  • ¿Cómo cerrar el navegador / pestaña una vez terminado?

La parte de lanzar el servidor se solucionó cuando encontré la ubicación del browser exe.
Después, iniciarlo usando CPIPE o $ZF(-1,...) [o el nuevo $ZF?? para versiones más nuevas ] funcionó inmediatamente.

Se crea la cadena a partir de BrowserLocation_CSPpage_ InquiryMessage y listo:

 // either
 do $zf(-1,browser_page_msg)

 // or
 open dev:browser_page_msg:0 write $t close dev

Debes tener en cuenta que todo esto es un entorno asincrónico y que debes verificar la finalización más de una vez.

Esto es un ejemplo y debería ayudarte a adaptarlo a tus necesidades concretas.

Puedes encontrar el código y algo más de documentación en Open Exchange.