2016-07-11 7 views
0

openfire를 XMPP 서버로 사용하고 클라이언트 라이브러리로 conversse를 사용하고 있습니다. 내 채팅 창에서 채팅 메시지를 openfire에 보내고 싶습니다. 이를 위해 텍스트를 XMPP 서버로 보낼 역방향 메서드로 보내려고합니다. 나는 다음과 같은 사용하여 메시지를 보내려고 오전 :대화방 라이브러리를 사용하여 채팅 메시지를 보내는 방법

var msg = converse.env.$msg({ 
     from: '[email protected]', 
     to: '[email protected]', 
     type: 'chat', 
     body: "Hi" 
    }); 
    converse.send(msg); 

을하지만이 웹 소켓 콘솔의 네트워크에서 다음 프레임을 보냅니다 = 'A6에 ='A1의 @ localhost를 '에서

메시지 @localhost 'type ='chat 'body ='안녕하세요 'xmlns ='jabber : client '/>

메시지를 다른 사용자에게 전송하지 않으며 테이블에 저장하지 않습니다. 나는 내가 틀린 기능을 부르고 있다고 확신한다. 누구든지 어떤 도움을받을 수 있습니까?

답변

2

올바른 기능을 호출하고 있습니다.

당신은 아마 놓칠 수있는 것들 : 메시지의

  1. 리스너 "A6의 @ localhost를"클라이언트에 : 나는이 문서에서 읽으면서 몇 가지 기능 아마

  2. , 서버의 올바른 이름이있다 . "localhost"에 문제가 있습니다. 당신은 자신의 웹 패널에서 실제 서비스 이름에 대해 Openfire를 확인하십시오.

  3. Openfire에서 제공되는 메시지인지 확인하려면 OF의 로그를 확인할 수 있습니다 (디버그 1을 확인하십시오.하지만 사용하도록 설정해야 할 것입니다) . 실시간 메시지는 데이터베이스에 저장되지 않으며 그룹 채팅의 메시지는 이며 매회 및 오프라인 메시지가 아닙니다. DB에 그들을 찾을 수없는 것은 아무것도에게 구문이 잘못

https://conversejs.org/docs/html/development.html

converse.chats.open('[email protected]'); 
converse.chats.get('[email protected]'); 
converse.listen.on('message', function (event, messageXML) { ... }); 
1

을 의미합니다. conversejs는 strophe 플러그인을 사용하여 메시지를 구성하고 전송합니다. 스탠자를 생성하기위한 strophe $ msg 메시지 작성기를 제공합니다. 다음과 같은 형식이어야합니다 :

본문 노드를 추가하고 그 안에 텍스트 노드를 추가해야합니다.

사용자 고유의 api 메소드를 작성 및 추가하고 사용자 정의 스탠자를 전송하는 메소드를 내부적으로 작성하여 api를 사용하여 노출 할 수도 있습니다.