Pergunta

Eu estou escrevendo um cliente XMPP em Java usando a API Bater.

I registrou um ouvinte lista para cada usuário, e as chamadas de API Smack ...

public void entriesAdded(Collection arg0) {}

... cada vez que ele percebe uma adição lista.

Alguém sabe se este ouvinte vai ser compensado se as alterações de banco de dados, mas não através do método Bater API createEntry ()?

Basicamente, eu quero amarrar o cliente XMPP para um site. Quando você adicionar alguém à lista de amigos do site, eu quero o site para notificar o cliente. Em vez de estabelecer bases ou usando PHP para entrar no servidor XMPP, eu estava esperando que apenas modificando o banco de dados iria funcionar.

Será que este trabalho ou há outra maneira de lidar com isso sem que o cliente constantemente polling o banco de dados para mudanças?

Foi útil?

Solução

Alterar o banco de dados não tem nada a ver com Bater diretamente, uma vez que é uma biblioteca de cliente. Não tem nenhum banco de dados. O banco de dados será usado e acessado pelo servidor, e, dependendo do servidor, pode haver recursos que permitirão que o servidor para enviar mensagens quando a db foi alterado. Eu não sei se todos os servidores XMPP realmente tem esse recurso.

Você deve verificar as capacidades do servidor que você está usando, e, possivelmente, usar extensões no próprio servidor para adicionar as entradas de lista. Alterar o banco de dados diretamente realmente não soar como o caminho a percorrer, como você provavelmente vai ter o seu servidor XMPP e banco de dados fora de sincronia.

Como para a votação cliente do banco de dados, que não soa como uma boa idéia para o cliente para ser capaz de acessar diretamente o banco de dados se ele está sendo usado por um servidor XMPP e, potencialmente, o seu servidor web.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top