Así que el primero es el tiempo real al que queremos escuchar. Así que en este caso, cambios de Postgres, pero podría ser presencia o difusión, que cubriremos a continuación. Y luego el siguiente parámetro es a qué queremos que nuestro manejador de eventos escuche. Así que en esta situación, queremos el esquema público, y este es un campo requerido. La mayoría de las veces será público, creo, para la mayoría de las personas. El evento no es opcional, pero podrías tenerlo como un comodín. Así que solo estoy interesado en inserciones, no estoy interesado en actualizaciones. Así que especifiqué inserciones, pero podrías tener un comodín. Y la tabla, solo estoy interesado en los resultados del juego. Pero eso podría omitirse si quisieras todo de tu base de datos. Y hay filtros adicionales que puedes agregar también. Y el tercer parámetro es mi callback, solo quiero incrementar cada vez que hay una inserción, eso es todo. Y luego nos suscribimos, así que registra nuestro cliente con el servidor. Realmente simple, ¿verdad? ¿Quién piensa que eso es bastante simple? Unos pocos más, unos pocos más. Bien, bien. Genial. ¿Alguien ve algo mal con esto, sin embargo? Y no es que falte un punto y coma o una coma. Esto funciona y se ejecuta, pero hay un escenario en el que esto no funcionaría. Oye, grita. Lo siento, mucho tráfico. Sí, ese es un desafío con el tiempo real con la base de datos, eso es correcto, especialmente con la seguridad. ¿Algo más?
Así que el problema es, si pierdo internet, si estoy en un tren y pierdo la conexión, entonces si vuelvo uno, verás que tengo 41 juegos jugados. Así que digamos que estoy en el tren, pierdo internet, y se completan cuatro juegos más, eso no incrementará, es disparar y olvidar. Así que cuando vuelva a tener internet, y entra un quinto juego, irá a 42, pero eso es incorrecto, debería ser 46. Así que podrías refrescar la página para solucionarlo, pero eso no es realmente una buena solución. Porque una conexión WebSocket permanece abierta indefinidamente a menos que se cierre, o haya una interrupción en la conexión a internet, como mencioné. Y es, sí, disparar y olvidar. Y creo que eso ayuda con el rendimiento y la escalabilidad. Pero luego tienes desafíos como este. Y podemos resolverlo bastante fácilmente, realmente. En la suscripción, así que cuando se reconecta, simplemente vamos y recogemos los datos más recientes nuevamente. Así que solo sucede cuando la página se carga, o si nos reconectamos. Y lo genial de esto es que no tienes que escribir mucho más código, porque esa función ya existía en mi código cuando la página se cargó por primera vez. Así que es realmente, realmente sencillo, porque no queremos refrescar la página. Y luego simplemente continuará recibiendo eventos futuros.
Así que hablemos de presencia. Esta es mi característica en tiempo real favorita de SuperBase, porque esto solía ser realmente, realmente difícil de hacer. Así que los juegos en progreso que viste en la tabla de clasificación, eso fue hecho por las características de presencia. ¿Cuántas personas están realmente jugando el juego ahora mismo? Has visto esto en Google Docs. En la parte superior derecha, ves cuántas personas tienen una vista en este documento con su foto de perfil. Y lo pasas por encima, y obtienes su nombre. Aquí, solo estoy enviando el nombre del jugador, y solo lo estoy contando. Pero puedes personalizarlo como quieras. Así que la presencia nos permite rastrear el estado entre los usuarios. Y tiene dos partes. Así que antes, el ejemplo anterior, tenía una parte. Esto tiene dos partes. Así que esto es en el jugador, así que las personas que juegan el juego. Así que tenemos el canal. Y esto puede ser cualquier cosa.
Comments