2016-08-29 5 views
10

저는 ejabberd에 새로 왔습니다. 내 iOS 앱을 통해 서버에 새 사용자를 추가하고 싶습니다. I tried with many code은 Google에서 찾아 냈지만 아무도 내 문제를 해결할 수 없습니다. 또한 etc/ejabberd 폴더에서 ejabberd.yml 파일을 변경 mod_register을 가능하게 들어 OS X ejabberd, XMPPFramework의 신규 사용자 등록

나는 http://localhost:5280/admin/server/localhost/node/[email protected]/modules/

enter image description here 에 모듈을 설정합니다.

enter image description here

그리고 ejabberd의 @ localhost를

enter image description here

내가 등록 사용자 코드 아래 사용에 내 경청 포트.

NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"jabber:iq:register"]; 
     [query addChild:[NSXMLElement elementWithName:@"username" stringValue:@"syam"]]; 
     [query addChild:[NSXMLElement elementWithName:@"password" stringValue:@"[email protected]123"]]; 
     NSXMLElement *iq = [NSXMLElement elementWithName:@"iq"]; 
     [iq addAttributeWithName:@"type" stringValue:@"set"]; 
     [iq addAttributeWithName:@"id" stringValue:@"reg2"]; 
     [iq addChild:query]; 
     [APP_DELEGATE.xmppStream sendElement:iq]; 

     [APP_DELEGATE.xmppStream setHostName:@"0.0.0.0"]; 
     [APP_DELEGATE.xmppStream setHostPort:5222]; 
     NSError *error; 
     if (![APP_DELEGATE.xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error]) { 
      UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error connecting" 
                   message:@"See console for error details." 
                   delegate:nil 
                 cancelButtonTitle:@"Ok" 
                 otherButtonTitles:nil]; 
      [alertView show]; 
     } 

그러나 성공하지 못했으며 오류 메시지 아래에 발생했습니다.

<iq xmlns="jabber:client" from="[email protected]" to="[email protected]/15505992182228745748626" type="error" id="reg2"><query xmlns="jabber:iq:register"><username>syam</username><password>[email protected]</password></query><error code="503" type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></service-unavailable><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">No module is handling this query</text></error></iq>

것은 내 문제를 해결하는 데 도움이 바랍니다.

답변

1

access: register 의미 - 이미에 등록 된 사용자는 mod_register에 액세스 할 수 있습니다 (예 : 암호 변경). 등록을하려면 access: all이 필요합니다. 서버가 공용 네트워크에 대한 열립니다 때 mod_register 존재를 확인하여 가상 호스트를 사용할 수 (이 경우 것이다 충분하지 XMPPFramework에서 간단한 등록 구현하는 것이)

또한 그것은 분명하지 않다 CAPTCHA로 등록을 보호하기 위해 mod_register되어 잊지 마세요 in modules: 구성 블록

+0

답변을 주셔서 감사합니다. 이미 "액세스 : 모두"를 완료했지만 성공하지 못했으며 CAPTCHA에 대한 선택 사항은 없지만 귀하의 제안에 따라 수행 할 것입니다. – iPatel

+0

언급 된 모듈에 대한 답변이 업데이트되었습니다. – vitalyster

+0

모듈에 mod_register가 없습니다 : 어디에서 잘못 될까요? 내 .yml 파일 구성이 맞기 때문에 내게 말할 수 있습니까? – iPatel