2017-10-10 7 views
0

Je développe une application de chat en ce sens que j'ai besoin de montrer l'état du message comme application WhatsApp pour que j'ai essayé XEP-0333 (Chat Marker), mais face à un problème comme.Comment implémenter XEP-0333 dans une application iOS?

1) Après avoir reçu le marqueur reçu de l'autre extrémité XMPPMessage Archive Message non mis à jour avec le marqueur Reçu (Dans les données de base, l'état du marqueur de chat de message n'est pas mis à jour).

2) Comment implémenter la logique Marker affichée? (Ce qui signifie pour chaque message que nous devons envoyer marqueur affiché ou pour une seule boîte de dialogue à la fois.)

XEP Lien: XEP-0333

code:

  //(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())") 
      } 
    } 

// Pour Marker Display I ont fait ci-dessous les choses. - Lorsque vous chargez un message à partir d'une archive de messages avec JID. loadArchivedMessagesFromJID - Méthode

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

Permettez-moi de savoir de quelle manière nous pouvons mettre en œuvre le droit protocole marqueur chat.

Dev Tools: Xcode 8.3 (Swift 3.0), serveur: ejabberd

Répondre

0

ejabberd ne supporte toujours pas XEP-0333

est ici le lien pour XEP pris en charge:

Protocols Supported by ejabberd

+0

Donc atteindre la fonctionnalité ci-dessus que XEP je dois implémenter? –