Pergunta

Eu estou construindo um bate-papo ao vivo usando JSJaC e ejabberd . É tudo trabalho, exceto que todos os visitantes do site são dadas a conta 'convidado'. Se dois visitantes tentar LIVECHAT ao mesmo tempo, as respostas se confusa ou o primeiro usuário estiver desconectado.

posso definir aleatoriamente o nome do hóspede, mas então eu preciso verificar se esse nome está registado ou auto-registo e espero que não tenha sido registrado antes. Eu tentei atribuindo cada login para um nome de recurso aleatória, mas isso ainda fundidas as conversas.

Em suma eu estou procurando a maneira mais fácil para permitir que múltiplos logins anônimos para iniciar conversas individuais com o livechat conta. Ainda melhor (mas opcional) se o livechat poderia round-robin para um usuário diferente quando a conta livechat principal está em um chat.

A solução pode ser web-cliente ou servidor com base, eu não me importo desde que eu controlar os dois (e suporta ejabberd vários módulos).

BTW, quando tento auto-registo de uma conta registrada as JSJaC simpleclient demonstração retornos:

An error occured:
Code: 409
Type: cancel
Condition: conflict

Eu não estabeleceram ainda se isso é algo que eu posso ignorar ou substituir com um cliente personalizado ou configuração do servidor. Acho que eu poderia simplesmente detectar este erro e tentar novamente sem auto-registo, mas eu gostaria de ouvir opções melhor / mais fácil.

Foi útil?

Solução

Tente permitindo anônima modo de login em seu servidor ejabberd? Então você não tem que registrar as contas de clientes, basta escolher qualquer nome de usuário e uma senha aleatória e ejabberd deve aceitá-los ...

Outras dicas

Eu acho que você pode usar a autenticação externa em ejabberd Estou na mesma situação: eu quero usuários anônimos para ser capaz de logon no servidor, mas alguns usuários especiais também ser capaz de login para tarefas adiminstrative ... Então eu decidi escrever um script php como um manipulador de autenticação para ejabberd. Em seguida, ele irá aceitar todos os logins com o nome começando com anon_ * e autenticar outros usuários contra um banco de dados.

Nós tivemos um problema semelhante em um projeto - queríamos que os usuários possam se conectar sem necessidade de qualquer criação ou confrontos conta - auto-registro não iria funcionar para nós, porque nomes poderiam colidir. No final, escolheu login anônimo com autenticação SASL em ejabberd - permite login anônimo e criação de conta dinâmica e acredito que as contas não ficam no sistema (eles estão vivos somente enquanto a conexão está aberta), no entanto a partir do que eu me lembro do servidor irá gerar um ID aleatório para o usuário.

O problema GUID JID pode ser capaz de ser resolvido com o uso de Apelidos

Set up SASL

página de suporte ejabberd - SASL

Se você não pode obter o modo anónimo de trabalho do ejabberd, você pode tentar criar um GUID para o nome de base de cada usuário, e apenas registrar o usuário em tempo real. Você vai querer ter um script periódica que exclui contas não utilizadas velhas do banco de dados.

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