Uso sencillo de SocketRocket

Todos sabemos que un socket es un socket que describe la dirección IP y el puerto. No es un protocolo per se, sino una interfaz de llamada. Para utilizar el protocolo subyacente (TCP o UDP) directamente, es una encapsulación de TCP/IP o UDP/IP. Socket se encuentra en la quinta capa de la capa de red y es una capa de abstracción. Websocket es un protocolo basado en el protocolo http y la conexión TCP. Es un protocolo de capa de aplicación en la capa de aplicación y no es el mismo concepto que socket.

Websocket puede transmitir texto y binario.

El encabezado del protocolo de websocket comienza con ws, no con http.

En la plataforma iOS, sabemos que el marco de código abierto para sockets incluye CocoaAsyncSocket, mientras que los marcos para websockets incluyen SocketRocket de Facebook y socket.io-client-swift.

Integrado con cocoapods

Método de creación

Preste especial atención al formato aquí.

Si el marco utilizado por el servidor es socket.io, después de que el cliente se conecta al servidor, después de que el cliente implementa el método proxy de SRWebSocketDelegate, la devolución de llamada no se implementará en el método abierto correctamente, pero Implemente directamente una devolución de llamada cercana. El resultado de la impresión es el siguiente:

Entonces la URL aquí debe fusionarse con los parámetros nuevamente.

Cumplir con el protocolo SRWebSocketDelegate e implementar métodos proxy

Se debe implementar el método proxy para recibir mensajes; de lo contrario, fallará.

Los siguientes métodos de proxy muestran el estado de conexión actual de websocket, abrir, fallar, cerrar y recibirPong.

Comprensión del método didReceivePong

Al usar webSocket, es mejor establecer un paquete de latidos, que se usa para notificar al servidor de vez en cuando (5 segundos o más) y dígale al servidor que el cliente todavía está activo. Este es un mensaje de ping. Luego, el servidor devuelve un mensaje pong al cliente, que se recibe en el método proxy didReceivePong.

Métodos para que los clientes envíen mensajes:

Al enviar un mensaje, debe discutir el formato del mensaje con el servidor. Si el formato es incorrecto, el websocket se cerrará cada vez que se envíe, lo cual es muy doloroso.

Al enviar un mensaje, es mejor crear un modelo - >; activar el diccionario - >; ir a datos - > > convertir a cadena. Esta es la última cadena enviada al servidor.

En el método de recepción del mensaje didReceiveMessage, los datos enviados por el servidor se convierten en un modelo para su uso conveniente.

Después de aprender a usar socketRocket simplemente, es mejor encapsular una clase de herramienta para la administración unificada para facilitar el uso y las llamadas externas. Cabe señalar que durante el proceso de encapsulación, es necesario definir un estado de atributo para representar el estado de conexión del websocket. ¿Está cerrado? ¿conectar? ¿Hay algún contacto? ¿Error de conexión? ¿Apagado del sistema? ¿El usuario se apaga? Mensajes recibidos, etc. Realice el procesamiento correspondiente de acuerdo con las necesidades reales.