2009-06-19 1 views
2

나는 JSJaCejabberd을 사용하여 실시간 채팅을하고 있습니다. 모든 사이트 방문자에게 '손님'계정이 주어지는 것을 제외하면 모두 작동합니다. 두 명의 방문자가 동시에 실시간 채팅을 시도하면 응답이 혼란 스럽거나 첫 번째 사용자가 로그 아웃됩니다.Jabber 자동 로그인

게스트 이름을 임의로 설정할 수 있지만 그 이름이 등록되어 있는지 또는 자동 등록되어 있는지 그리고 이전에 등록되지 않았 으면 좋겠는지 확인해야합니다. 임의의 리소스 이름에 각 로그인을 할당하려고 시도했지만 여전히 대화를 병합했습니다.

간단히 말해서 익명 로그인을 여러 번 허용하여 라이브 채팅 계정으로 개별 대화를 시작할 수있는 가장 쉬운 방법을 찾고 있습니다. 기본 라이브 채팅 계정이 채팅 중일 때 라이브 채팅이 다른 사용자에게 라운드 로빈 할 수 있다면 더 좋습니다 (그러나 선택 사항).

해결책은 웹 클라이언트 또는 서버 기반 일 수 있습니다. 둘 다 제어하므로 (ejabberd는 다양한 모듈을 지원합니다) 신경 쓰지 않아도됩니다. 내가하려고 할 때

BTW, 자동 등록 a를 JSJaC simpleclient 데모 반환 계정 등록 :이 일이 있다면 내가 무시하거나 사용자 정의 클라이언트 또는 서버로 대체 할 수 있습니다 아직 확립되지 않은

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

을 설정. 나는이 오류를 감지하고 자동 등록하지 않고 다시 시도 할 수 있지만 더 좋고/더 쉬운 옵션을 듣고 싶습니다.

답변

2

ejabberd 서버에서 anonymous login mode을 사용 설정해보십시오. 그렇다면 고객 계정을 등록 할 필요가 없습니다. 임의의 사용자 이름과 암호를 선택하면 ejabberd가 동의해야합니다 ...

+0

감사합니다. 그런 것이 존재했는지 확신 할 수 없었습니다. 내가 한 일처럼 정확하게 들린다. – SpliFF

+0

충분히 이상하게도 작동하지 않습니다. 나는 편지에 지시 사항을 따라 갔지만 (나는 401인가되지 않은 오류를받습니다). serverfault 또는 ejabberd에서 질문 할 것이지만이 대답은 여전히 ​​받아 들일 수 있습니다. – SpliFF

0

ejabberd의 익명 모드가 작동하지 않으면 각각에 대해 GUID을 만들 수 있습니다 사용자의 기본 이름을 저장하고 사용자를 즉시 ​​등록 할 수 있습니다. 데이터베이스에서 사용되지 않는 오래된 계정을 삭제하는주기적인 스크립트가 필요할 것입니다.

+0

사실 그것은 결국 내가 한 것입니다. 비록 제가 guid보다 짧은 이름을 사용 했었습니다. 그것은 당신에게 대답을 줄 너무 늦었어요. 실제로 익명 모드가 작동하지만 사용자가 선택한 GUID 대신 GUID와 유사한 이름을 지정했습니다. 사용자가 PDA/Iphones을 사용하고있을 수 있으므로 [email protected]/help와 같은 사용자가 chat window realestate를 막는 것을 원하지 않았습니다. – SpliFF

1

프로젝트에서 비슷한 문제가 발생했습니다. 사용자가 계정을 만들거나 충돌하지 않아도 로그인 할 수 있기를 원합니다. 이름이 충돌 할 수 있기 때문에 자동 등록이 작동하지 않습니다. 마지막으로 ejabberd에서 익명 로그인을 선택했습니다. 익명 로그인과 동적 계정 생성이 가능하며 계정이 시스템에 남아 있지 않을 것이라고 생각합니다. (연결이 열린 상태에서만 살아 있습니다.) 서버는 사용자에 대한 임의의 ID를 생성합니다. 수있을

의 GUID JID 문제는 Nicknames

Set up SASL

Ejabberd Support Page - SASL

2

의 사용으로 해결하기 위해 나는 당신이 내가 같은 상황에있어 ejabberd 외부 인증을 사용할 수 있습니다 추측 : 익명 사용자가 서버에 로그인 할 수있게하고 싶지만 일부 특수 사용자도 adiminstrative 작업을 위해 로그인 할 수 있습니다. 그래서 ejabberd의 인증 처리기로 PHP 스크립트를 작성하기로 결정했습니다. 그런 다음 이름이 anon_ * 으로 시작하는 모든 로그인을 허용하고 데이터베이스에 대해 다른 사용자를 인증합니다.

+0

ejabberd에서는 데이터베이스 로그인과 익명 로그인을 모두 사용할 수 있습니다. 여러 개의 auth_method를 참조 할 수 있습니다. 이 경우 주문이 중요합니다. 데이터베이스 인증을 먼저 사용하고 익명 인증을 폴백으로 사용하십시오. –