2017-10-10 2 views
0

私はXEP-0333(チャットマーカー)を試してみたが、問題に直面しているため、WhatsAppアプリのようなメッセージステータスを表示する必要があるという点で、1つのチャットアプリを開発しています。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) 

は私たちがチャットマーカープロトコルを実装することができますでの正しい方法を知ってみましょう。

開発ツール:Xcodeの8.3(スウィフト3.0)、 サーバー:ejabberd

答えて

0

ejabberdまだXEP-0333をサポートしていません

は、ここでサポートXEPためのリンクです:

Protocols Supported by ejabberd

+0

上記のXEPを実装する必要がある機能を実現しますか? –

関連する問題