gwsocket es un servidor WebSocket simple, independiente, independiente del lenguaje, compatible con RFC6455, escrito en C. Se ubica entre su aplicación y el navegador del cliente, brindando comunicación bidireccional rápida entre estos dos con facilidad y flexibilidad. Más información en: https://gwsocket.io.
Muy simple, simplemente redirija la salida de su aplicación (stdout) a stdin
o a un archivo (canalización con nombre) y deje que gwsocket transfiera los datos al navegador. Eso es todo.
Por ejemplo, rastrear los registros de su servidor en el navegador no podría ser más sencillo.
# tail -f /var/log/nginx/access.log > /tmp/wspipein.fifo
O
# tail -f /var/log/nginx/access.log | gwsocket
También puede obtener los datos del cliente en (stdin) su aplicación. De hecho, incluso puedes enviar la salida de tu programa ncurses favorito al navegador. Vea el screencast arriba.
Necesitaba un servidor WebSocket rápido , simple , sin dependencias , sin bibliotecas , compatible con RFC6455 , escrito en C, que pudiera usar para la versión 1.0 de GoAccess simplemente canalizando datos de entrada y salida: ¡WebSockets es fácil!
gwsocket es independiente del idioma; consulte la página de manual para obtener más detalles y ejemplos sobre cómo recibir datos del navegador y cómo enviarlos al navegador.
Instalar gwsocket es bastante fácil. Simplemente descárgalo, extráelo y compílalo con:
$ wget https://tar.gwsocket.io/gwsocket-0.4.tar.gz
$ tar -xzvf gwsocket-0.4.tar.gz
$ cd gwsocket-0.4/
$ ./configure
$ make
# make install
No se necesitan dependencias. Que lindo no :), bueno casi, necesitas gcc
, make
, etc.
$ git clone s://github.com/allinurl/gwsocket.git
$ cd gwsocket
$ autoreconf -fiv
$ ./configure
$ make
# make install
Para establecer un canal entre su aplicación y el navegador del cliente, gwsocket proporciona dos métodos que permiten al usuario enviar y enviar datos. El primero es mediante el uso de la entrada estándar (stdin) y la salida estándar (stdout). El segundo método es mediante un encabezado de tamaño fijo seguido de la carga útil. Consulte las opciones a continuación para obtener más detalles.
La entrada/salida estándar es la forma más sencilla de enviar/recibir datos hacia/desde un cliente. Sin embargo, se limita a transmitir mensajes a todos los clientes. Para enviar o recibir mensajes de un cliente específico, utilice el modo estricto en la siguiente sección. Vea ejemplos específicos de idiomas aquí.
gwsocket implementa su propio pequeño protocolo para enviar/recibir datos. A diferencia del modo stdin/stdout , el modo estricto le permite enviar/recibir datos hacia/desde clientes conectados específicos, así como realizar un seguimiento de quién abrió/cerró una conexión WebSocket. También le brinda la posibilidad de empaquetar y enviar tantos datos como desee en un solo mensaje. Vea ejemplos específicos de idiomas aquí.
Las siguientes opciones se pueden proporcionar a la línea de comando.
Opción de línea de comando | Descripción |
---|---|
-p --port | Especifica el puerto para enlazar. |
-h --help | Ayuda de línea de comando. |
-V --version | Mostrar información de la versión y salir. |
--access-log=<path/file> | Especifica la ruta/archivo para el registro de acceso. |
--addr=<addr> | Especifica la dirección a vincular. |
--echo-mode | Configure el servidor para que repita todos los mensajes recibidos. |
--max-frame-size=<bytes> | Tamaño máximo de un marco websocket. |
--origin=<origin> | Asegúrese de que los clientes envíen el encabezado de origen especificado al momento del apretón de manos. |
--pipein=<path/file> | Crea una canalización con nombre (FIFO) que lee en la ruta/archivo dado. |
--pipeout=<path/file> | Crea una canalización con nombre (FIFO) que escribe en la ruta/archivo dado. |
--std | Habilite --stdin y --stdout . |
--stdin | Envíe stdin al websocket. |
--stdout | Envíe los datos del websocket recibidos a la salida estándar. |
--strict | Analizar mensajes usando el modo estricto. Consulte la página de manual para obtener más detalles. |
--ssl-cert=<cert.crt> | Ruta al certificado SSL. |
--ssl-key=<priv.key> | Ruta a la clave privada SSL. |
--unix-socket=<addr> | Especifique la dirección del socket del dominio UNIX al que vincular el servidor. |
epoll
y kqueue
Licencia MIT
Cualquier ayuda sobre gwsocket es bienvenida. La forma más útil es probarlo y dar su opinión. No dude en utilizar el rastreador de problemas de Github y las solicitudes de extracción para discutir y enviar cambios de código.
¡Disfrutar!