문제

나는 다음을 사용하여 실시간 채팅을 만들고 있습니다. JSJaC 그리고 ejabberd .모든 사이트 방문자에게 '게스트' 계정이 부여된다는 점을 제외하면 모두 작동합니다.두 명의 방문자가 동시에 라이브 채팅을 시도하면 응답이 혼란스럽거나 첫 번째 사용자가 로그아웃됩니다.

게스트 이름을 무작위로 설정할 수 있지만 그 이름이 등록되었는지 자동 등록되었는지 확인하고 이전에 등록된 적이 없길 바랍니다.각 로그인을 임의의 리소스 이름에 할당하려고 시도했지만 여전히 대화가 병합되었습니다.

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

솔루션은 웹 클라이언트 기반이거나 서버 기반일 수 있습니다. 두 가지 모두를 제어하므로 상관하지 않습니다(그리고 ejabberd는 다양한 모듈을 지원합니다).

그런데, 등록된 계정을 자동 등록하려고 하면 JSJaC simpleclient 데모가 다음을 반환합니다.

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

이것이 사용자 정의 클라이언트 또는 서버 설정으로 무시하거나 무시할 수 있는지 아직 확인하지 않았습니다.이 오류를 감지하고 자동 등록 없이 다시 시도할 수 있을 것 같지만 더 나은/더 쉬운 옵션을 듣고 싶습니다.

도움이 되었습니까?

해결책

활성화하십시오 익명 로그인 모드 Ejabberd 서버에서? 그런 다음 클라이언트 계정을 등록 할 필요가없고 임의의 사용자 이름과 비밀번호를 선택하면 Ejabberd가 수락해야합니다 ...

다른 팁

Ejabberd에서 외부 인증을 사용할 수있을 것 같아요. 같은 상황에 처해 있습니다. 익명 사용자가 서버에 로그인 할 수 있기를 원하지만 일부 특수 사용자는 AdiminStrative 작업에 로그인 할 수 있습니다 ... 그래서 글을 쓰기로 결정했습니다. Ejabberd의 인증 핸들러로서 PHP 스크립트. 그런 다음 ANON_*로 시작하는 이름이있는 모든 로그인을 수락하고 데이터베이스에 대해 다른 사용자를 인증합니다.

프로젝트에서 비슷한 문제가있었습니다. 사용자가 계정 생성이나 충돌을 필요로하지 않고 로그인 할 수 있기를 원했습니다. 이름이 충돌 할 수 있기 때문에 자동 등록이 우리에게는 효과가 없습니다. 결국 우리는 Ejabberd에서 SASL 인증을 사용하여 익명 로그인을 선택했습니다. 익명 로그인 및 동적 계정 생성을 허용하며 계정이 시스템에 유지되지 않는다고 생각하지만 (연결이 열려있는 동안에 만 살아 있다고 생각합니다). 서버는 사용자에게 임의의 ID를 생성합니다.

안내 지드 문제는 별명

SASL을 설정하십시오

Ejabberd 지원 페이지 -SASL

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top