AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Comunicación / WebSocket
  • Presentación
  • Cómo funciona el servidor de WebSocket
  • ¿Cómo utilizar el servidor WebSocket?
  • " Proyecto de servidor WebSocket
  • Creación de un proyecto "Servidor WebSocket
  • Eventos WLanguage específicos de los proyectos "Servidor WebSocket
  • Contextos de ejecución
  • Funciones específicas de WLanguage que pueden ser usadas en proyectos de servidores WebSocket
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Presentación
El protocolo WebSocket proporciona un canal de comunicación a través de un socket TCP para navegadores y servidores Web. Así, es posible comunicarse e intercambiar mensajes con un servidor web, utilizando el código del navegador WEBDEV.
El servidor WebSocket provisto con WEBDEV puede ser ejecutado en Windows y con IIS (IIS 8 o posterior) solamente.
A partir de la versión 27, es posible conectarse a un servidor WebSocket mediante una aplicación WINDEV (Windows o Linux) o una aplicación WINDEV Mobile (Android o iOS).
Cómo funciona el servidor de WebSocket
En una aplicación o sitio Web, el cliente envía una solicitud al servidor y éste devuelve la respuesta, como el contenido de la Page solicitada. .
El uso de un WebSocket permite transmitir datos associated con el sitio web en tiempo real (por ejemplo, mensajes en un sitio de mensajería instantánea). Con el protocolo WebSocket, el cliente sólo necesita establecer una conexión con un servidor web. Una vez establecido, el canal de comunicación permanece abierto.
El servidor puede enviar de forma independiente toda la información que considere useful al cliente. Si hay nueva información disponible en el servidor, el cliente no tiene que enviar una solicitud.
¿Cómo utilizar el servidor WebSocket?
Para usar el servidor WebSocket, debes:
  1. Instalar el Servidor de Aplicaciones WEBDEV 2024, que permite gestionar servidores WebSocket (pestaña "WebSockets")..
    Observación: Se requiere WEBDEV 26 Application Server o posterior.
  2. Crear un proyecto "Servidor WebSocket. Este proyecto se despliega en el servidor Web (donde se ha instalado el servidor de aplicaciones WEBDEV). Espera a que se le envíen las conexiones usando el protocolo WebSocket. Esta aplicación se ejecuta en la Background del servidor.
  3. Crear el proyecto que consultará el servidor WebSocket. Este proyecto enviará mensajes al servidor WebSocket y Process las respuestas utilizando las funciones de Socketxxx, si es necesario. Este proyecto puede ser:
    • Un proyecto WEBDEV.
    • Un proyecto WINDEV.
    • Un proyecto WINDEV Mobile (Android o iOS).
  4. La conexión con el servidor WebSocket puede establecerse desde el proyecto "cliente" mediante las siguientes funciones:
    WebSocketClientConnectEstablece una conexión entre el cliente y un servidor WebSocket.
    WebSocketClientConnectSSLEstablece una conexión SSL entre el cliente y un servidor WebSocket.
Observación: El servidor WebSocket de WEBDEV puede ser usado con cualquier lenguaje que soporte este protocolo.
" Proyecto de servidor WebSocket

Creación de un proyecto "Servidor WebSocket

Para crear un proyecto "Servidor WebSocket:
  1. Vaya a la página de inicio de WEBDEV (o presione CTRL + <).
  2. Haga clic en "Crear un proyecto" y, a continuación, en "Servidor WebSocket"..
  3. El asistente de creación de proyectos se abre.
  4. Especifique el nombre del proyecto y siga los diferentes pasos de la creación del proyecto (para más detalles, consulte Crear un proyecto WEBDEV).
  5. Finalice el asistente: el proyecto se crea automáticamente.
Atención: Este proyecto no debe utilizar componentes (internos o externos), ni cargar bibliotecas (WDL).

Eventos WLanguage específicos de los proyectos "Servidor WebSocket

Varios eventos específicos de WLanguage son associated con el proyecto:
EventCondición de ejecución
Servicio global (bucle Process)Esta Event es la Event principal del servidor WebSocket. Se llama en un bucle cuando se inicia el servidor WebSocket.
Por ejemplo, esta Event puede ser usada para enviar un mensaje a uno o más clientes según un parámetro leído en un archivo de datos.
Puede especificar la ejecución de la interval de esta Event usando la siguiente sintaxis:
PROCEDURE GlobalService()<interval=<Duration>>
donde es la ejecución del evento interval. Este parámetro puede ser un número entero que corresponde al número de milisegundos, o la duración en formato texto (por ejemplo, "20 s" o "10 ms"). Por defecto, esta Event se ejecuta cada 10 segundos.
En esta Event, puede utilizar WebSocketListConnectedClient para get la lista de clientes conectados en el momento de la ejecución de la función (tenga en cuenta que esta lista puede ser diferente en cada momento).
Nueva conexiónSe ejecuta cuando se solicita una conexión de cliente (a través de SocketConnect).
Recordatorio: El cliente es un sitio web. La solicitud de conexión se realizará desde el código del navegador de una web Page.
Este evento acepta parámetros. Este evento tiene el siguiente formato:
PROCEDURE Connection(Client is websocketClient)
donde corresponde a un websocketClient Variable que contiene las características del cliente.
Recibir un mensaje de un clienteSe ejecuta cuando el cliente envía un mensaje al servidor WebSocket (a través de SocketWrite).
Este evento acepta parámetros. Este evento tiene el siguiente formato:
PROCEDURE ReceiveMessage(Client is websocketClient,
vMessage is Variant)
donde:
  • corresponde a un websocketClient Variable que contiene las características del cliente.
  • corresponde al mensaje enviado por el cliente. El tipo real del valor almacenado es una cadena Unicode o un Buffer (<vMensaje>.Type).
Desconexión de un clienteSe ejecuta cuando el cliente se desconecta (a través de SocketClose).
Este evento acepta parámetros. Este evento tiene el siguiente formato:
PROCEDURE Disconnection(Client is websocketClient)
donde corresponde a un websocketClient Variable que contiene las características del cliente.
Detener el servicio globalEjecutado cuando el servicio global se detenga.

Observación: Para editar los eventos específicos de un proyecto: en la pestaña "Inicio", en el grupo "General", despliegue y seleccione "Código del proyecto".

Contextos de ejecución

El servicio global del servidor WebSocket y los clientes conectados se ejecutan de forma independiente. Cada uno se ejecuta en su propio contexto con:
  • su propia copy de variables globales.
  • su propio contexto de base de datos.
  • etc.
Por lo tanto, no es posible para manipular el contexto global o el contexto de otro cliente de otro contexto.
WebSocketExecute se utiliza para ejecutar un Procedure en el contexto de un cliente conectado al servidor WebSocket. En este caso, el contexto de ejecución es el del cliente: durante la ejecución de la Procedure, las variables globales serán las del cliente especificado.
WebSocketExecuteGlobalService se utiliza para ejecutar un Procedure global en el contexto global del servidor WebSocket. Durante la ejecución de la Procedure global, las variables globales serán las del servicio global.
Atención: Puede ser necesario establecer el tiempo de interval entre dos llamadas de servicio global para que la Procedure pueda ser ejecutada.

Funciones específicas de WLanguage que pueden ser usadas en proyectos de servidores WebSocket

Las siguientes funciones pueden ser utilizadas en el servidor WebSocket:
WebSocketDisconnectDesconecta un cliente de un servidor WebSocket.
WebSocketExecuteEjecuta un procedimiento en el contexto de un cliente conectado al servidor WebSocket.
WebSocketExecuteGlobalServiceEjecuta una Procedure global en el contexto del servicio global del servidor WebSocket.
WebSocketListConnectedUserLista los clientes conectados al servidor WebSocket.
WebSocketSendEnvía un mensaje del servidor WebSocket al cliente.
Versión mínima requerida
  • Versión 26
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 23/11/2023

Señalar un error o enviar una sugerencia | Ayuda local