Pregunta

Estoy escribiendo un cliente XMPP en Java usando la API de Smack.

Registré una lista de escucha para cada usuario, y la API de Smack llama ...

public void entriesAdded(Collection arg0) {}

... cada vez que nota una adición a la lista.

¿Alguien sabe si esta escucha se activará si la base de datos cambia pero no a través del método Smack API createEntry ()?

Básicamente, quiero vincular el cliente XMPP a un sitio web. Cuando agrega a alguien a la lista de amigos del sitio web, quiero que el sitio notifique al cliente. En lugar de configurar sockets o usar PHP para iniciar sesión en el servidor XMPP, esperaba que simplemente modificar la base de datos funcionara.

¿Funcionará esto o hay otra forma de manejar esto sin que el cliente busque constantemente cambios en la base de datos?

¿Fue útil?

Solución

Cambiar la base de datos no tiene nada que ver con Smack directamente, ya que es una biblioteca cliente. No tiene base de datos. El servidor utilizará y accederá a la base de datos y, dependiendo del servidor, puede haber características que le permitirán publicar mensajes cuando se haya cambiado la base de datos. No sé si algún servidor xmpp realmente tiene esta característica.

Debe verificar las capacidades del servidor que está utilizando y posiblemente usar extensiones en el propio servidor para agregar las entradas de la lista. Cambiar la base de datos directamente no parece ser el camino a seguir, ya que lo más probable es que su servidor XMPP y su base de datos no estén sincronizados.

En cuanto al cliente que sondea la base de datos, no parece una buena idea que el cliente pueda acceder directamente a la base de datos si la está utilizando un servidor XMPP y potencialmente su servidor web.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top