Domanda

Sto creando una chat dal vivo usando JSJaC e ejabberd . Funziona tutto tranne che a tutti i visitatori del sito viene assegnato l'account "ospite". Se due visitatori provano a vivere in streaming contemporaneamente le risposte vengono confuse o il primo utente viene disconnesso.

Posso impostare casualmente il nome dell'ospite ma poi devo controllare se quel nome è registrato o si registra automaticamente e spero che non sia stato registrato prima. Ho provato ad assegnare ogni accesso a un nome di risorsa casuale ma questo ha comunque unito le conversazioni.

In breve sto cercando il modo più semplice per consentire a più accessi anonimi di avviare conversazioni individuali con l'account livechat. Ancora meglio (ma facoltativo) se il liveChat potrebbe effettuare il round robin a un altro utente quando l'account LiveChat principale è in una chat.

La soluzione può essere basata su web-client o server, non mi interessa poiché controllo entrambi (ed ejabberd supporta vari moduli).

A proposito, quando provo a registrare automaticamente un account registrato, la demo di JSJaC semplifica la restituzione:

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

Non ho ancora stabilito se questo è qualcosa che posso ignorare o ignorare con una configurazione client o server personalizzata. Suppongo che potrei semplicemente rilevare questo errore e riprovare senza la registrazione automatica, ma mi piacerebbe sentire le opzioni migliori / più facili.

È stato utile?

Soluzione

Prova ad abilitare modalità di accesso anonimo sul tuo server ejabberd? Quindi non è necessario registrare gli account cliente, basta scegliere qualsiasi nome utente e password casuali ed ejabberd dovrebbe accettarli ...

Altri suggerimenti

Suppongo che tu possa usare l'autenticazione esterna in ejabberd Sono nella stessa situazione: voglio che utenti anonimi possano accedere al server, ma anche alcuni utenti speciali siano in grado di accedere per attività adimestrative ... Così ho deciso di scrivere uno script php come gestore di autenticazione per ejabberd. Quindi accetterà tutti gli accessi con il nome che inizia con anon_ * e autenticare altri utenti rispetto a un database.

Abbiamo riscontrato un problema simile in un progetto: volevamo che gli utenti potessero accedere senza richiedere la creazione di account o scontri; la registrazione automatica non funzionava per noi perché i nomi potevano scontrarsi. Alla fine abbiamo scelto l'accesso anonimo con autenticazione SASL in ejabberd: consente l'accesso anonimo e la creazione dinamica di account e credo che gli account non rimangano sul sistema (sono attivi solo mentre la connessione è aperta), tuttavia da ciò che ricordo il il server genererà un ID casuale per l'utente.

Il problema GUID JID potrebbe essere risolto con l'uso di Soprannomi

Configura SASL

Pagina di supporto Ejabberd - SASL

Se non riesci a far funzionare la modalità anonima di ejabberd, potresti provare a creare un GUID per il nome di base di ogni utente e semplicemente registrando l'utente al volo. Ti consigliamo di avere uno script periodico che elimini dal database i vecchi account non utilizzati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top