Resumen
La API WebSocket de Solana permite suscribirse a actualizaciones en tiempo real, como cambios de cuentas, confirmaciones de transacciones y nuevos slots, sin necesidad de hacer polling. Este artículo explica los métodos de suscripción principales, cómo conectarse a un endpoint WebSocket y cómo manejar los modos de fallo comunes en producción.
La API WebSocket de Solana es la columna vertebral para dApps, indexadores y bots de trading en tiempo real. A diferencia de HTTP JSON-RPC, que requiere hacer polling para detectar cambios de estado, las suscripciones WebSocket envían actualizaciones en el momento en que ocurren. Este artículo cubre los métodos de suscripción esenciales, cómo conectarse a un endpoint WebSocket y qué tener en cuenta en producción.
Guía rápida de decisión: Cuándo usar WebSocket vs HTTP
Antes de entrar en código, decide si realmente necesitas WebSocket. Si tu aplicación solo obtiene saldos de cuentas cuando el usuario realiza una acción, el polling HTTP es más simple y confiable. Si necesitas reaccionar a cambios de estado en segundos, como monitorear una billetera para pagos entrantes o rastrear un pool de DEX, las suscripciones WebSocket ahorran ancho de banda y reducen la latencia.
Usa WebSocket cuando:
- Necesites actualizaciones en tiempo real de saldos de cuentas, transferencias de tokens o estado de programas.
- Estés construyendo un libro de órdenes, un ticker de precios o un panel en vivo.
- Quieras evitar los límites de tasa del polling y reducir la carga en tu proveedor de RPC.
Quédate con HTTP cuando:
- Tus necesidades de datos sean ocasionales y puedan tolerar unos segundos de retraso.
- Estés haciendo consultas puntuales o lecturas por lotes.
- Necesites datos de archivo o estado histórico que WebSocket no proporciona.
Para la mayoría de las aplicaciones de producción, un enfoque híbrido funciona mejor: usa HTTP para el estado inicial y WebSocket para actualizaciones en vivo. Esto mantiene bajo el número de conexiones y tus datos frescos.
Endpoint WebSocket de Solana: Lo que necesitas para conectarte
Para usar la API WebSocket de Solana, necesitas una URL de endpoint WebSocket. OnFinality proporciona un endpoint WebSocket público para la mainnet de Solana:
wss://solana.api.onfinality.io/public-ws
Este endpoint soporta el estándar JSON-RPC de Solana sobre WebSocket. Para mayor rendimiento y recursos dedicados, puedes aprovisionar un nodo dedicado a través de OnFinality, que te brinda una URL WebSocket privada con tus propios límites de tasa.
Al conectarte, ten en cuenta estos detalles:
- Transporte: Se requiere WebSocket (wss://); no se admite ws:// simple en endpoints de mainnet.
- Autenticación: Los endpoints públicos pueden tener límites de tasa; para producción, usa una clave API o un endpoint dedicado.
- Red: Asegúrate de conectarte a la red correcta (mainnet vs devnet). Devnet tiene un endpoint separado, como el que se lista en la página de Solana Devnet.
Métodos de suscripción principales que debes conocer
La API WebSocket de Solana refleja los métodos HTTP JSON-RPC pero añade variantes de suscripción. Estos son los métodos más utilizados:
| Método | Descripción | Caso de uso |
|---|---|---|
accountSubscribe | Notifica cuando cambian los lamports o los datos de una cuenta | Monitorear saldos de billeteras, cuentas de tokens |
logsSubscribe | Transmite registros de transacciones que coinciden con un filtro | Rastrear actividad de programas, depurar transacciones |
programSubscribe | Alerta cuando cualquier cuenta propiedad de un programa cambia | Vigilar pools de DEX, acuñaciones de NFT |
slotSubscribe | Envía una notificación cada vez que se confirma un nuevo slot | Rastrear el progreso de la cadena, sincronizar indexadores |
signatureSubscribe | Notifica cuando se confirma la firma de una transacción | Confirmar transacciones de usuarios en tiempo real |
rootSubscribe | Envía una notificación cuando se establece una nueva raíz | Seguimiento avanzado de consenso |
Cada suscripción devuelve un ID de suscripción que usarás para cancelarla más tarde. También necesitarás manejar la respuesta inicial y las notificaciones posteriores.
Conexión a la API WebSocket de Solana: Un ejemplo en JavaScript
Aquí tienes un ejemplo mínimo usando la librería ws en Node.js para suscribirse a actualizaciones de cuentas:
const WebSocket = require('ws');
const ws = new WebSocket('wss://solana.api.onfinality.io/public-ws');
ws.on('open', function open() {
// Suscribirse a cambios de cuenta para una clave pública específica
const accountPubkey = 'YourBase58PublicKeyHere';
ws.send(JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'accountSubscribe',
params: [
accountPubkey,
{
encoding: 'base64',
commitment: 'confirmed'
}
]
}));
});
ws.on('message', function incoming(data) {
const message = JSON.parse(data);
if (message.method === 'accountNotification') {
console.log('Actualización de cuenta:', message.params.result);
// Manejar la actualización, por ejemplo, actualizar tu UI o base de datos
} else if (message.id === 1) {
console.log('ID de suscripción:', message.result);
// Almacenar el ID de suscripción para cancelarlo más tarde si es necesario
}
});
ws.on('error', function error(err) {
console.error('Error de WebSocket:', err);
});
Recuerda reemplazar YourBase58PublicKeyHere con una dirección de cuenta real. Para producción, querrás añadir lógica de reconexión y manejar la contrapresión.
Entendiendo los payloads de notificación
Cuando una suscripción se activa, recibes un objeto de notificación con un campo method como accountNotification, logsNotification, etc. El params.result contiene los datos reales. Para accountNotification, el resultado incluye los lamports de la cuenta, los datos y el propietario. Para logsNotification, obtienes registros y una firma.
Aquí tienes un ejemplo de un payload de accountNotification:
{
"jsonrpc": "2.0",
"method": "accountNotification",
"params": {
"result": {
"context": {
"slot": 123456
},
"value": {
"lamports": 1000000,
"data": {
"program": "",
"parsed": null,
"space": 0
},
"owner": "11111111111111111111111111111111",
"executable": false,
"rentEpoch": 0
}
},
"subscription": 123
}
}
Ten en cuenta que el campo data puede estar codificado en base64 si solicitaste esa codificación. Necesitarás decodificarlo para leer el estado de la cuenta.
Manejo de reconexiones y heartbeats
Las conexiones WebSocket pueden caerse debido a problemas de red, reinicios del servidor o tiempos de espera por inactividad. En producción, debes implementar lógica de reconexión. Aquí tienes un patrón simple:
function connect() {
const ws = new WebSocket('wss://solana.api.onfinality.io/public-ws');
ws.on('open', () => {
// Volver a suscribirse a todas las suscripciones activas
activeSubscriptions.forEach(sub => ws.send(sub));
});
ws.on('close', () => {
console.log('Conexión cerrada, reconectando en 5s...');
setTimeout(connect, 5000);
});
ws.on('error', (err) => {
console.error('Error:', err);
ws.close();
});
// Enviar un ping cada 30s para mantener la conexión viva
setInterval(() => {
if (ws.readyState === WebSocket.OPEN) {
ws.ping();
}
}, 30000);
}
connect();
Al reconectarte, necesitarás volver a suscribirte a todas tus suscripciones anteriores porque el servidor las olvida después de una desconexión. Mantén una lista de tus solicitudes de suscripción y reprodúcelas al abrir.
Errores comunes y cómo evitarlos
- No manejar la contrapresión: Si tu aplicación no puede procesar las notificaciones lo suficientemente rápido, te quedarás atrás. Usa una cola o búfer para gestionar los mensajes entrantes.
- Ignorar los niveles de compromiso: ¿Las suscripciones tienen como valor predeterminado
finalized? En realidad, el valor predeterminado esfinalizedpara algunos métodos, pero a menudo querrásconfirmedpara actualizaciones más rápidas. Especifica el nivel de compromiso explícitamente para que coincida con tus necesidades. - Suscribirse a demasiadas cuentas: Cada suscripción consume recursos. Agrupa cuentas relacionadas en una sola suscripción de programa si es posible.
- Olvidar cancelar la suscripción: Cuando ya no necesites actualizaciones, llama a
accountUnsubscribecon el ID de suscripción para liberar recursos. - Usar el endpoint HTTP para WebSocket: Asegúrate de usar la URL
wss://, no lahttps://.
Lista de verificación para producción
Antes de implementar tu aplicación basada en WebSocket, revisa esta lista:
- Usa un endpoint WebSocket dedicado con límites de tasa suficientes para tu carga de trabajo.
- Implementa reconexión con backoff exponencial.
- Vuelve a suscribirte a todas las suscripciones activas después de la reconexión.
- Monitorea la salud de la conexión con heartbeats o pings.
- Configura alertas para caídas de conexión y fallos de suscripción.
- Prueba primero en devnet usando el endpoint de Solana Devnet.
- Considera usar un servicio gestionado como OnFinality para manejar el escalado de la infraestructura.
Elegir la infraestructura adecuada para cargas WebSocket
Las conexiones WebSocket son de larga duración y pueden consumir muchos recursos en el lado del servidor. Si ejecutas tu propio nodo de Solana, necesitarás gestionar el servidor WebSocket y asegurarte de que pueda manejar muchas conexiones concurrentes. Aquí es donde un proveedor de RPC gestionado puede ahorrarte tiempo.
OnFinality ofrece endpoints de Solana tanto públicos como dedicados. Los endpoints públicos son excelentes para desarrollo y uso ligero, pero para aplicaciones de producción con alto rendimiento de mensajes, un nodo dedicado te brinda recursos dedicados y un rendimiento más predecible. Puedes comparar opciones en nuestra página de precios de RPC y ver todas las redes compatibles en nuestra página de redes.
Al evaluar proveedores, considera:
- Límites de conexión: ¿Cuántas conexiones WebSocket concurrentes se permiten?
- Rendimiento de mensajes: ¿Puede el proveedor manejar tu volumen de suscripciones?
- Tiempo de actividad y conmutación por error: ¿Ofrece el proveedor infraestructura redundante?
- Soporte: ¿Hay un equipo para ayudar con problemas?
Conclusiones clave
- La API WebSocket de Solana permite suscripciones en tiempo real para cuentas, registros, programas, slots y firmas.
- Usa el endpoint
wss://, nohttps://, y especifica el nivel de compromiso correcto. - Implementa lógica de reconexión y vuelve a suscribirte después de caídas para mantener un flujo confiable.
- Elige un proveedor que pueda manejar tu carga WebSocket; considera nodos dedicados para producción.
- Prueba en devnet antes de salir a producción para evitar errores costosos.
Preguntas frecuentes
¿Cuál es la diferencia entre la API HTTP y WebSocket de Solana?
La API HTTP es de solicitud-respuesta, por lo que haces polling para obtener datos. La API WebSocket envía actualizaciones cuando ocurren cambios, lo que la hace más eficiente para aplicaciones en tiempo real.
¿Cómo obtengo un endpoint WebSocket de Solana?
Puedes usar un endpoint público como wss://solana.api.onfinality.io/public-ws o aprovisionar un nodo dedicado para límites más altos. Para devnet, usa el endpoint específico de devnet.
¿Qué nivel de compromiso debo usar para las suscripciones WebSocket?
Depende de tu caso de uso. confirmed es un buen valor predeterminado para la mayoría de las aplicaciones porque equilibra velocidad y confiabilidad. finalized es más lento pero asegura que los datos sean irreversibles. processed es el más rápido pero puede incluir datos no confirmados.
¿Puedo suscribirme a múltiples cuentas con una sola suscripción?
No, accountSubscribe toma una sola cuenta. Para monitorear múltiples cuentas, puedes crear múltiples suscripciones o usar programSubscribe si todas son propiedad del mismo programa.
¿Cómo manejo las desconexiones de WebSocket?
Implementa reconexión automática con una estrategia de backoff y vuelve a suscribirte a todas tus suscripciones activas después de reconectarte. Mantén una lista de solicitudes de suscripción para reproducirlas.
¿OnFinality soporta WebSocket para Solana?
Sí, OnFinality proporciona endpoints WebSocket para la mainnet y devnet de Solana. Puedes encontrar las URLs en las respectivas páginas de red.
¿Cuáles son los límites de tasa para el endpoint WebSocket público?
Los endpoints públicos tienen límites de tasa para garantizar un uso justo. Para producción, considera un nodo dedicado para obtener límites más altos y mejor rendimiento. Consulta nuestra página de precios para más detalles.
¿Puedo usar WebSocket para Solana devnet?
Sí, Solana devnet soporta suscripciones WebSocket. Usa el endpoint de devnet de la página de Solana Devnet.
¿Cuál es la mejor manera de monitorear la salud de WebSocket?
Envía pings periódicos y rastrea el tiempo entre mensajes. Configura alertas para heartbeats perdidos o caídas de conexión.
¿Hay algún costo asociado con el uso de suscripciones WebSocket?
En endpoints públicos, puede haber límites de tasa pero sin costo directo. Los nodos dedicados tienen una tarifa según tu plan. Consulta Precios de RPC para más información.
¿Cómo cancelo una suscripción?
Usa el método *Unsubscribe correspondiente, como accountUnsubscribe, y pasa el ID de suscripción que recibiste al suscribirte.
¿Cuál es el número máximo de conexiones WebSocket concurrentes?
Esto depende de tu proveedor. Los endpoints públicos pueden tener límites más bajos; los nodos dedicados pueden manejar más. Contacta a tu proveedor para detalles específicos.
¿Puedo usar WebSocket para Solana con Python?
Sí, puedes usar librerías como websockets o solana-py para conectarte a endpoints WebSocket. El formato JSON-RPC es el mismo.
¿Cuál es la diferencia entre slotSubscribe y rootSubscribe?
slotSubscribe te notifica cuando se confirma un nuevo slot, mientras que rootSubscribe notifica cuando se establece una nueva raíz (un slot que está finalizado). Las actualizaciones de raíz son menos frecuentes.
¿Cómo obtengo el ID de suscripción?
El servidor responde a tu solicitud de suscripción con una respuesta JSON-RPC que contiene el ID de suscripción en el campo result.
¿Qué sucede si envío una solicitud de suscripción con una cuenta inválida?
El servidor devolverá una respuesta de error. Asegúrate de que la cuenta exista y sea una clave pública base58 válida.
¿Puedo suscribirme a registros de un programa específico?
Sí, usa logsSubscribe con un filtro que incluya mentions para el ID del programa.
¿Cómo manejo grandes volúmenes de notificaciones?
Usa una cola de mensajes para almacenar en búfer las notificaciones y procesarlas de forma asíncrona. Considera agrupar las escrituras en tu base de datos.
¿WebSocket es compatible con todos los proveedores de RPC de Solana?
La mayoría de los proveedores soportan WebSocket, pero consulta su documentación. OnFinality soporta WebSocket en endpoints públicos y dedicados.
¿Cuál es la mejor manera de probar las suscripciones WebSocket?
Usa una herramienta como wscat o escribe un script simple de Node.js para suscribirte a una cuenta conocida y verificar que recibes actualizaciones.
¿Puedo usar WebSocket para Solana con ethers.js?
No, ethers.js es para cadenas EVM. Para Solana, usa @solana/web3.js que tiene soporte WebSocket integrado.
¿Cómo configuro una conexión WebSocket con @solana/web3.js?
Usa new Connection('wss://...') y luego llama a métodos como onAccountChange para suscribirte.
¿Cuál es el compromiso predeterminado para las suscripciones WebSocket?
El valor predeterminado es finalized para algunos métodos, pero siempre debes especificar el nivel de compromiso explícitamente para evitar sorpresas.
¿Hay consideraciones de seguridad para WebSocket?
Usa wss:// para cifrar los datos en tránsito. Evita enviar datos sensibles a través de ws:// simple.
¿Cómo monitoreo la salud de mi conexión WebSocket?
Envía un ping cada 30 segundos y escucha el pong. Si no recibes un pong, considera que la conexión está muerta y reconéctate.
¿Puedo usar WebSocket para Solana mainnet y devnet simultáneamente?
Sí, puedes abrir conexiones separadas al endpoint de cada red.
¿Cuál es la mejor práctica para gestionar múltiples suscripciones?
Mantén un mapa de IDs de suscripción a su propósito y vuelve a suscribirte al reconectarte. Cancela la suscripción cuando ya no sea necesaria.
¿OnFinality proporciona soporte WebSocket para otras redes?
Sí, OnFinality soporta WebSocket para muchas redes. Consulta la página de redes para más detalles.
¿Cómo empiezo rápidamente con Solana WebSocket?
Usa el endpoint público y un script simple para suscribirte a una cuenta de prueba. Luego expande a tu caso de uso.
¿Cuáles son los errores comunes al usar WebSocket?
Los errores comunes incluyen JSON inválido, método no soportado o limitación de tasa. Revisa el mensaje de error y ajusta en consecuencia.
¿Puedo usar WebSocket para Solana con una aplicación móvil?
Sí, pero ten en cuenta el uso de batería y red. Considera usar una librería que soporte conexiones en segundo plano.
¿Cómo aseguro que mi conexión WebSocket sea segura?
Usa siempre wss:// y valida el certificado del servidor. Evita enviar claves privadas a través de WebSocket.
¿Cuál es la diferencia entre accountSubscribe y programSubscribe?
accountSubscribe monitorea una sola cuenta, mientras que programSubscribe monitorea todas las cuentas propiedad de un programa. Usa programSubscribe para un monitoreo más amplio.
¿Puedo filtrar registros por ID de programa?
Sí, usa el filtro mentions en logsSubscribe para recibir solo registros que mencionen un programa específico.
¿Cómo cancelo una suscripción?
Envía el método *Unsubscribe correspondiente con el ID de suscripción. Por ejemplo, accountUnsubscribe con el ID.
¿Cuál es el tamaño máximo de mensaje para WebSocket?
Los mensajes WebSocket de Solana pueden ser grandes, especialmente para datos de cuenta. Asegúrate de que tu cliente pueda manejar payloads grandes.
¿Cómo manejo la limitación de tasa en WebSocket?
Si alcanzas los límites de tasa, reduce el número de suscripciones o actualiza a un nodo dedicado con límites más altos.
¿Puedo usar WebSocket para Solana con una función serverless?
Las funciones serverless no son ideales para conexiones WebSocket de larga duración. Usa un servidor persistente o un servicio gestionado.
¿Cuál es la mejor manera de aprender Solana WebSocket?
Comienza con la documentación oficial de Solana y experimenta con el endpoint público. Luego lee guías específicas del proveedor.
¿OnFinality ofrece WebSocket para Solana devnet?
Sí, puedes encontrar el endpoint WebSocket de devnet en la página de Solana Devnet.
¿Cómo obtengo soporte para problemas de WebSocket?
Contacta al equipo de soporte de tu proveedor de RPC. OnFinality ofrece soporte para sus servicios.
¿Cuál es el futuro de Solana WebSocket?
Solana continúa mejorando sus APIs. Mantente actualizado con los anuncios oficiales.
¿Puedo usar WebSocket para Solana con una aplicación Go?
Sí, usa librerías como gorilla/websocket para conectarte al endpoint WebSocket.
¿Cómo pruebo las suscripciones WebSocket sin una cuenta real?
Puedes suscribirte a una cuenta conocida como el programa del sistema o usar una cuenta de prueba en devnet.
¿Cuál es la mejor manera de manejar errores en WebSocket?
Registra los errores e implementa lógica de reintento. Para errores persistentes, alerta a tu equipo.
¿Hay algún costo por las suscripciones WebSocket en endpoints públicos?
Los endpoints públicos son gratuitos pero tienen límites de tasa. Para producción, considera un plan de pago.
¿Cómo elijo entre WebSocket y HTTP para mi aplicación?
Evalúa tus requisitos de latencia y volumen de datos. Usa WebSocket para tiempo real, HTTP para consultas ocasionales.
¿Cuál es la diferencia entre confirmed y finalized?
confirmed significa que la transacción es aceptada por el clúster, mientras que finalized significa que es irreversible. Usa confirmed para actualizaciones más rápidas.
¿Puedo usar WebSocket para Solana con una aplicación Rust?
Sí, usa librerías como tokio-tungstenite para conectarte.
¿Cómo obtengo el número de slot actual a través de WebSocket?
Suscríbete a slotSubscribe y recibirás actualizaciones de slot.
¿Cuál es la mejor manera de monitorear múltiples cuentas?
Usa programSubscribe si comparten un programa, o crea múltiples llamadas accountSubscribe.
¿Cómo manejo la contrapresión de WebSocket?
Usa una cola para almacenar en búfer los mensajes y procesarlos a un ritmo controlado.
¿Puedo usar WebSocket para Solana con una aplicación C#?
Sí, usa librerías como ClientWebSocket en .NET.
¿Cuál es la mejor manera de asegurar alta disponibilidad para conexiones WebSocket?
Usa múltiples conexiones y lógica de conmutación por error. Considera un proveedor con infraestructura redundante.
¿Cómo empiezo con el WebSocket de Solana de OnFinality?
Visita la página de red de Solana para obtener el endpoint y la documentación.
¿Cuáles son las limitaciones de las suscripciones WebSocket?
Las suscripciones son efímeras y requieren manejo de reconexión. Además, solo proporcionan el estado actual, no datos históricos.
¿Puedo usar WebSocket para Solana con una aplicación móvil?
Sí, pero ten en cuenta el uso de batería y red. Considera usar una librería que soporte conexiones en segundo plano.
¿Cómo aseguro que mi conexión WebSocket sea segura?
Usa siempre wss:// y valida el certificado del servidor. Evita enviar claves privadas a través de WebSocket.
¿Cuál es la diferencia entre accountSubscribe y programSubscribe?
accountSubscribe monitorea una sola cuenta, mientras que programSubscribe monitorea todas las cuentas propiedad de un programa. Usa programSubscribe para un monitoreo más amplio.
¿Puedo filtrar registros por ID de programa?
Sí, usa el filtro mentions en logsSubscribe para recibir solo registros que mencionen un programa específico.
¿Cómo cancelo una suscripción?
Envía el método *Unsubscribe correspondiente con el ID de suscripción. Por ejemplo, accountUnsubscribe con el ID.
¿Cuál es el tamaño máximo de mensaje para WebSocket?
Los mensajes WebSocket de Solana pueden ser grandes, especialmente para datos de cuenta. Asegúrate de que tu cliente pueda manejar payloads grandes.
¿Cómo manejo la limitación de tasa en WebSocket?
Si alcanzas los límites de tasa, reduce el número de suscripciones o actualiza a un nodo dedicado con límites más altos.
¿Puedo usar WebSocket para Solana con una función serverless?
Las funciones serverless no son ideales para conexiones WebSocket de larga duración. Usa un servidor persistente o un servicio gestionado.
¿Cuál es la mejor manera de aprender Solana WebSocket?
Comienza con la documentación oficial de Solana y experimenta con el endpoint público. Luego lee guías específicas del proveedor.
¿OnFinality ofrece WebSocket para Solana devnet?
Sí, puedes encontrar el endpoint WebSocket de devnet en la página de Solana Devnet.
¿Cómo obtengo soporte para problemas de WebSocket?
Contacta al equipo de soporte de tu proveedor de RPC. OnFinality ofrece soporte para sus servicios.
¿Cuál es el futuro de Solana WebSocket?
Solana continúa mejorando sus APIs. Mantente actualizado con los anuncios oficiales.
¿Puedo usar WebSocket para Solana con una aplicación Go?
Sí, usa librerías como gorilla/websocket para conectarte al endpoint WebSocket.
¿Cómo pruebo las suscripciones WebSocket sin una cuenta real?
Puedes suscribirte a una cuenta conocida como el programa del sistema o usar una cuenta de prueba en devnet.
¿Cuál es la mejor manera de manejar errores en WebSocket?
Registra los errores e implementa lógica de reintento. Para errores persistentes, alerta a tu equipo.
¿Hay algún costo por las suscripciones WebSocket en endpoints públicos?
Los endpoints públicos son gratuitos pero tienen límites de tasa. Para producción, considera un plan de pago.
¿Cómo elijo entre WebSocket y HTTP para mi aplicación?
Evalúa tus requisitos de latencia y volumen de datos. Usa WebSocket para tiempo real, HTTP para consultas ocasionales.
¿Cuál es la diferencia entre confirmed y finalized?
confirmed significa que la transacción es aceptada por el clúster, mientras que finalized significa que es irreversible. Usa confirmed para actualizaciones más rápidas.
¿Puedo usar WebSocket para Solana con una aplicación Rust?
Sí, usa librerías como tokio-tungstenite para conectarte.
¿Cómo obtengo el número de slot actual a través de WebSocket?
Suscríbete a slotSubscribe y recibirás actualizaciones de slot.
¿Cuál es la mejor manera de monitorear múltiples cuentas?
Usa programSubscribe si comparten un programa, o crea múltiples llamadas accountSubscribe.
¿Cómo manejo la contrapresión de WebSocket?
Usa una cola para almacenar en búfer los mensajes y procesarlos a un ritmo controlado.
¿Puedo usar WebSocket para Solana con una aplicación C#?
Sí, usa librerías como ClientWebSocket en .NET.
¿Cuál es la mejor manera de asegurar alta disponibilidad para conexiones WebSocket?
Usa múltiples conexiones y lógica de conmutación por error. Considera un proveedor con infraestructura redundante.
¿Cómo empiezo con el WebSocket de Solana de OnFinality?
Visita la página de red de Solana para obtener el endpoint y la documentación.
¿Cuáles son las limitaciones de las suscripciones WebSocket?
Las suscripciones son efímeras y requieren manejo de reconexión. Además, solo proporcionan el estado actual, no datos históricos.