2017-10-10 12 views
0

나는 XEP-0333 (채팅 마커)을 시도했지만 문제가있는 것처럼 WhatsApp 앱과 같은 메시지 상태를 표시해야한다는 점에서 하나의 채팅 앱을 개발 중입니다.iOS 응용 프로그램에서 XEP-0333을 구현하는 방법은 무엇입니까?

1) 수신 마커를 다른 쪽 끝에서 가져온 후 XMPPMessage 보관함에서 수신 마커로 메시지를 업데이트하지 않음 (코어 데이터에서 메시지 채팅 마커 상태가 업데이트되지 않음).

2) 표시 마커 논리를 구현하는 방법은 무엇입니까? (우리는 한 번에 하나의 대화 상자가 표시 마커 또는를 보낼 필요가 각 메시지에 대해 의미합니다.)

XEP 링크 : XEP-0333

코드 :

  //(Sender Part) 
      let completeMessage = DDXMLElement.element(withName: "message") as! DDXMLElement //(In that i have set id,body,to and type as chat) 
      let msgObj = XMPPMessage(from: completeMessage) 
      msgObj?.addMarkableChatMarker() 
      xmppStream?.send(msgObj) 

     //(Receiver Part) 
    didReceivedMessage - Method 

    //*Check One condition* 
    if message.isChatMessageWithBody() && message.isErrorMessage() == false { 
     if (message.hasChatMarker() == true){ 
       printLog("Message ID\(message.elementID())") 
       let msgElement = XMPPMessageMng.getChatMessageElement(recipient: message.from().bare(), thread: "") 
        let threadElement = DDXMLElement.element(withName: "thread") as! DDXMLElement 
        threadElement.stringValue = "Thread" 
        msgElement.addChild(threadElement) 
        let msgReceived = XMPPMessage(from: msgElement) 
        msgReceived?.addReceivedChatMarker(withID: message.elementID()) 
        xmppStream.send(msgReceived) 
       } 
    } 

    else{ 
      if (message.hasMarkableChatMarker() == true){ 
       printLog("Chat Marker ID\(message.chatMarkerID())") 
      }else if (message.hasReceivedChatMarker() == true){ 
        printLog("Chat Marker ID\(message.chatMarkerID())") 
      } 
    } 

// 표시 마커 I의 경우 아래 사항을 수행했습니다. - JID를 사용하여 메시지 보관함에서 메시지를로드 할 때. loadArchivedMessagesFromJID - 방법

//message as XMPPMessageArchiving_Message_CoreDataObject 
let msgReceived = XMPPMessage(from: msgElement) 
          msgReceived?.addDisplayedChatMarker(withID: message.message.elementID()) 
xmppStream.send(msgReceived) 

날 우리가 채팅 마커 프로토콜을 구현할 수를 잘하는 방법을 알려주세요.

개발 도구 : 엑스 코드 8.3 (스위프트 3.0), 서버 : ejabberd

답변

0

ejabberd 아직 지원하지 않습니다 XEP-0333

여기에 지원 XEP에 대한 링크입니다 :

Protocols Supported by ejabberd

+0

XEP를 구현해야하는 위의 기능을 수행 하시겠습니까? –