Importaciones requeridas
Lo primero que debe hacer es importar los paquetes requeridos. Para este proyecto, necesitaremos el paquete FMT, NET/HTTP y el paquete Gorilla.
Podemos hacer estas importaciones como:
importar (Una vez importado, podemos comenzar a construir nuestro servidor.
Actualizar la conexión HTTP
El primer paso en nuestro proyecto es tomar una conexión HTTP y actualizarla a un WebSocket . Podemos hacer esto usando el WebSocket.Struct de actualización. Se necesita el tamaño del búfer de lectura y escritura como se define en el código fuente a continuación:
https: // pkg.ir.dev/github.com/gorila/websocket#actualizador
Para nuestro ejemplo, utilizaremos las opciones predeterminadas, pero establezcan el checkOrigin en una función que devuelve verdaderas. Esto evitará que el servidor bloquee la conexión debido a CORS.
VAR actualizador = websocket.ActualizadorHandler Agregar
A continuación, permítanos un controlador HTTP cuando un cliente llegue al punto final /eco. Definiremos más adelante en la función principal.
Func Echo (w http.Responsewriter, r *http.Pedido)En el ejemplo anterior, definimos una función que toma el Responsewriter y un puntero al HTTP.Respuesta.
Actualizamos la conexión HTTP al protocolo WebSocket utilizando la función de actualización. A continuación, usamos un bucle for para escuchar y leer mensajes entrantes. Luego imprimimos el mensaje en la consola y hacemos eco del mensaje al cliente.
Agregar punto final de WebSocket
El siguiente paso es agregar un controlador HTTP simple para el punto final de WebSocket. Podemos usar la función como:
Func Home (w http.Responsewriter, r *http.Pedido)Crear cliente
Para interactuar con el servicio de WebSocket, necesitamos crear un cliente. Podemos hacer esto creando un archivo HTML simple desde que usa JavaScript para abrir una conexión WebSocket al servidor. Un código de ejemplo es como se muestra:
índice.htmlEjecutar servidor
El último paso es definir las rutas y llamar a los controladores HTTP en la función principal. El código es como se muestra:
funcmain ()Guarde los archivos y ejecute:
ir a correr ws.irAbra el índice.archivo html en su navegador. Debería ver un mensaje conectado una vez que el navegador establezca una conexión.
Si escribe cualquier mensaje en el campo, el servidor lo responde.
El código fuente completo del programa es como se muestra:
paquete principalConclusión
Esta fue una guía para principiantes para trabajar con WebSocket en GO. En esta guía, cubrimos cómo actualizar una conexión HTTP al protocolo WebSocket, leer mensajes y responder mensajes al cliente.