मैं ओपनफायर 4.2.0 के साथ मॉनिटरिंग प्लगइन 1.6.0 का उपयोग कर रहा हूं।

ओपनफायर एडमिन कंसोल पर आर्काइव सेटिंग्स का स्क्रीनशॉट निम्नलिखित है।

enter image description here

मैं इसके साथ उपयोग किए जा रहे प्लगइन्स का स्क्रीनशॉट भी निम्नलिखित कर रहा हूं। यहां छवि विवरण दर्ज करें

मेरी समस्या

जैसा कि आप देख सकते हैं प्लगइन स्थापित है। लेकिन जब मैं निम्नलिखित कोड के साथ चैट इतिहास लाने की कोशिश कर रहा हूं: मुझे सेवा अनुपलब्ध प्रतिक्रिया मिल रही है।

func fetchChatHistoryFromServer(completionHandler completion: @escaping FetchChatHistoryCompletionHandler) {

    let iq = DDXMLElement(name: "iq")
    iq.addAttribute(withName: "type", stringValue: "set")
    iq.addAttribute(withName: "id", stringValue: UserManager.shared.activeUser.jid)

    let query = DDXMLElement(name: "query")
    query.setXmlns("urn:xmpp:mam:2")
    query.addAttribute(withName: "queryid", stringValue: XMPPManager.shared.xmppStream.generateUUID)

    let x = DDXMLElement(name: "x")
    x.setXmlns("jabber:x:data")
    x.addAttribute(withName: "type", stringValue: "submit")


    let field = DDXMLElement(name: "field")
    field.addAttribute(withName: "var", stringValue: "FORM_TYPE")
    field.addAttribute(withName: "type", stringValue: "hidden")
    let fieldValue = DDXMLElement(name: "value", stringValue: "urn:xmpp:mam:2")
    field.addChild(fieldValue)
    x.addChild(field)
    query.addChild(x)
    iq.addChild(query)
    //let xmppResultSet = XMPPResultSet(max: 2000)
    Logger.log(iq)
    didFetchChatHistoryCompletionBlock = completion
    xmppMessageArchivingManagement?.retrieveMessageArchive(withFields: [iq], with: nil)
}

आउटपुट लॉग :-

<iq type="set" id="dev60@dev.myapp.com">
    <query xmlns="urn:xmpp:mam:2" queryid="20B07616-12BC-41BB-9DE6-F0F6A74951A5">
        <x xmlns="jabber:x:data" type="submit">
            <field var="FORM_TYPE" type="hidden">
                <value>urn:xmpp:mam:2</value>
            </field>
        </x>
     </query>
</iq>

प्रतिक्रिया :--

<iq xmlns="jabber:client" type="error" id="7BED0303-46E3-40D4-BE47-543BB7810F66" to="dev60@dev.myapp.com/a3lb3jaw9g">
<query xmlns="urn:xmpp:mam:2" queryid="80D6D753-B2BF-4626-84B5-C216D4B94996">
    <x xmlns="jabber:x:data" type="submit">
        <field var="FORM_TYPE" type="hidden">
        <value>urn:xmpp:mam:2</value>
        </field>
        <iq type="set" id="dev60@dev.myapp.com">
            <query xmlns="urn:xmpp:mam:2" queryid="20B07616-12BC-41BB-9DE6-F0F6A74951A5">
                <x xmlns="jabber:x:data" type="submit">
                    <field var="FORM_TYPE" type="hidden">
                        <value>urn:xmpp:mam:2</value>
                    </field>
                </x>
            </query>
        </iq>
    </x>
</query>
<error code="503" type="cancel">
    <service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></service-unavailable>
</error>
0
Pawan Joshi 9 जुलाई 2018, 06:50

1 उत्तर

सबसे बढ़िया उत्तर

Openfire urn:xmpp:mam:2 का समर्थन नहीं करता है आपको इसके बजाय urn:xmpp:mam:1 का उपयोग करना होगा। आपको इसे XMPPMessageArchiveManagemnt क्लास में बदलना होगा। बस XMPPMessageArchiveManagement क्लास पर जाएं। 20 की लाइन में यह कहा गया है /** 'urn:xmpp:mam:2' */ extern NSString *const XMLNS_XMPP_MAM;. बस कमांड होल्ड करें और उसके बाद XMLNS_XMPP_MAM पर क्लिक करें urn:xmpp:mam:2 से urn:xmpp:mam:1

5
andesta.erfan 9 जुलाई 2018, 13:03