Introducción
Los servicios gratuitos abundan en el mundo actual. Muchos de los que se promocionan como gratuitos en realidad no lo son. Para dar cabida a los traders profesionales, los exchanges centralizados de buena reputación ofrecen ciertas funciones útiles. Una de ellas es el protocolo WebSocket para monitorear e interactuar con los últimos datos del mercado y del usuario. Este protocolo es una herramienta de comunicación bidireccional. Es muy práctico en su enfoque, pero para evitar el uso indebido del protocolo WebSocket, los exchanges imponen límites sobre la frecuencia y la duración de su uso.
WebSocket Stream y WebSocket API
La mayoría de los exchanges ofrecen WebSocket API y WebSocket Stream. Ambos son bidireccionales, ya que puedes enviar y recibir mensajes mediante el protocolo. El stream se limita únicamente a datos del mercado. Puedes ver los últimos precios y operaciones del mercado spot utilizando WebSocket Stream. Si deseas comprar y vender tus activos utilizando los últimos datos del mercado, WebSocket es la opción para ti.
Por qué los exchanges imponen límites
Parece injusto por parte de los exchanges limitar el uso de una herramienta como WebSocket. Sin embargo, cuando ves la razón, admites que la imposición de límites es un acto justificado. Estos límites están destinados a garantizar la estabilidad, la equidad y la seguridad en la plataforma. La multiplexación y las conexiones múltiples tienen el potencial de sobrecargar el sistema.
Es posible que hayas encontrado un aviso frecuente en internet para demostrar que eres humano. Esto demuestra que las personas usan bots para navegar y operar en internet. Los bots pueden hacer un uso excesivo del protocolo WebSocket, lo que provoca la saturación de la red. Esta situación puede generar problemas para los usuarios comunes. Por lo tanto, los límites pueden evitar que el sistema reciba demasiadas solicitudes seguidas, que pueden contener datos maliciosos.
Límites impuestos por los exchanges
1. Mecanismo de ping-pong
El primer límite impuesto por los exchanges es que la conexión WebSocket se termina si no hay respuesta en un plazo de 10 minutos. El sistema te envía un ping cada 3 minutos, al que debes responder en un plazo de 10 minutos. Dado que WebSocket es un protocolo de comunicación bilateral, puedes enviar mensajes por tu cuenta para adquirir cualquier dato. Pero el ping debe responderse con un pong. De lo contrario, la conexión se termina a pesar de que hayas estado comunicándote. Un ping y un pong contienen los mismos datos y la misma cantidad de ellos.
En resumen, la comunicación normal no reemplaza el mecanismo de ping-pong. Debes enviar un pong en respuesta al ping de WebSocket.
2. Límite de conexiones y streams
En WebSocket Stream, puedes establecer una conexión y suscribirte a múltiples streams en ella. Alternativamente, puedes abrir diferentes conexiones para diferentes actividades. Los exchanges imponen límites en ambos tipos de comunicación. Cuando ves varios streams uno al lado del otro, hay un límite de 1024 de ellos por conexión. Este es un límite bastante generoso, que no afecta negativamente a ningún nivel de experiencia de trading.
En cuanto a las conexiones, hay un límite de 300 conexiones por dirección IP cada 5 minutos. Al igual que el límite en los streams, el límite de conexiones también es más que suficiente para cualquier trader de criptomonedas. De hecho, los límites están destinados a evitar que un sistema erróneo o un actor malintencionado sobrecargue el sistema. Si hay un error en la computadora del cliente, puede enviar numerosas solicitudes de conexión por segundo. Además, esto puede hacerlo deliberadamente alguien que desea saturar el sistema.
3. Límites de tasa y peso
Así como los actores malintencionados pueden intentar sobrecargar el sistema tratando de conectarse una y otra vez, algunos clientes envían demasiados mensajes demasiado rápido. Si esto sucede, el sistema los bloquea temporalmente. Este límite también está dirigido a mantener la red funcionando sin problemas.
Los límites de peso significan que un cliente pide demasiado en un solo mensaje. Por ejemplo, si se solicitan muchos símbolos (BTC/USDT, ETH/USDT, XRP/USDT, etc.) juntos, el sistema puede sentir la presión y pedirle al cliente que intente de nuevo. No hay límites estrictos en la tasa y el peso, pero el usuario puede aprenderlos con la experiencia.
Errores de WebSocket y soluciones
1. Conexión cerrada
Si esto sucede, el cliente puede solicitar fácilmente la conexión nuevamente. La terminación de la conexión puede ocurrir debido a cualquier violación de los límites mencionados anteriormente.
2. Tiempo de conexión agotado
Los clientes ocasionalmente enfrentan este problema debido a la violación del límite de tasa. Una mala conexión a internet también puede provocar el mismo error. Por lo tanto, es aconsejable verificar tu conectividad si esto sucede.
3. Error 1000
Si el servidor se cierra por cualquier motivo, el cliente puede encontrarse con el Error 1000. Simplemente intenta reconectar y es probable que el problema se resuelva por sí solo.
4. Error 1008
La violación del límite de tasa puede provocar el error 1008 y se le puede pedir al cliente que intente de nuevo más tarde. Esperar un poco puede resolver este error.
Cómo optimizar la experiencia del usuario
Como con cualquier sistema, los problemas pueden surgir de forma natural. Sin embargo, siguiendo ciertas pautas, puedes hacer que tu experiencia esté libre de contratiempos. Si eres un usuario intensivo, puedes optar por distribuir tu carga en más de un servidor. La multiplexación y las conexiones múltiples siguen utilizando el mismo servidor, por lo que no es probable que resuelvan tu problema. Además, debes intentar reutilizar tus conexiones en lugar de crear nuevas para ahorrar recursos.
También debes verificar dos veces tus comandos antes de enviarlos al servidor. En caso de cualquiera de los errores mencionados anteriormente, intenta después de un tiempo en lugar de intentar de nuevo inmediatamente. Además, trata de mantener tu conexión activa siguiendo la regla de ping-pong. Para evitar la desconexión, revisa tu tasa y peso antes de comenzar la comunicación real.
Conclusión
Aunque el protocolo WebSocket ofrecido por los exchanges de criptomonedas ofrece umbrales generosos, es aconsejable tener en cuenta los límites al operar en la red. Como trader de criptomonedas exitoso, debes saber qué tipo de errores y cuántos puedes enfrentar. Cuando adquieres el conocimiento adecuado, puedes resolver los problemas que surgen del uso.
Lectura relacionada: Huellas digitales: la ciencia de la toma de huellas dactilares.