2012-02-15 12 views
5

भेजने के लिए जारी है, लेकिन मैं एंड्रॉयड के लिए aSmack पुस्तकालय 3.2.1 में MultiUserChat साथ एक समस्या है। मैं "gtalk.google.com" सर्वर का उपयोग कर रहा हूं। यह एक सरल उदाहरण है और I'am केवल कमरे में एक:XMPP aSmack MultiUserChat सर्वर ढेर पर एक नया उपयोगकर्ता I'am पहले से ही प्राप्त संदेशों

String room="[email protected]"; 
MultiUserChat muc = new MultiUserChat(connection,room); 
muc.join(userNameInRoom); 

muc.addMessageListener(new PacketListener() 
{ 
    @Override 
    public void processPacket(Packet packet) 
    { 
     ... 
    } 
}); 

के बाद:

muc.sendMessage("Text message"); 

प्रवेश करें:

DEBUG/SMACK(281): 06:46:29 PM SENT (1140866576): <message id="gsMe7-18" 
to="[email protected]" type="groupchat"><body>Text message 
</body></message> 

DEBUG/SMACK(281): 06:46:29 PM RCV (1140866576): <message 
from="[email protected]/userNameInRoom" to="userName" 
type="groupchat"><body>Text message</body></message> 

परिणाम: "पाठ संदेश" और यह सही है, लेकिन फिर:

मुझे फिर से "टेक्स्ट संदेश" प्राप्त हुआ:

DEBUG/SMACK(281): 06:54:12 PM RCV (1140866576): <presence 
from="[email protected]/userNameInRoom" to="userName"><x xmlns= 
"vcard-temp:x:update"><photo/></x><x xmlns="http://jabber.org/protocol/muc#user"> 
<item affiliation="owner" role="moderator"/><status code="110"/></x></presence> 

DEBUG/SMACK(281): 06:54:12 PM RCV (1140866576): <message 
from="[email protected]/userNameInRoom" to="userName" 
type="groupchat"><body>Text message</body><delay stamp="2012-02-15T17:46:31Z" 
from="[email protected]" xmlns="urn:xmpp:delay"/><x 
stamp="20120215T17:46:31" from="[email protected]" 
xmlns="jabber:x:delay"/></message> 

और मैं प्राप्त है कि बार-बार जब भी सर्वर मेरे लिए उपस्थिति भेजें। यह अंतराल ~ 5 मिनट के साथ असीम रूप से जारी है। और हाँ 30 मिनट में मैंने ~ 6 संदेश "टेक्स्ट संदेश" प्राप्त किया। यदि मैं 1 से अधिक संदेश भेजता हूं तो इन सभी संदेशों को अपवाद के बिना प्राप्त किया जाएगा जब उपस्थिति मुझे भेजें।

मेरी MultiUserChat साथ क्या समस्या और वितरण यहाँ क्या कर देरी?

ध्यान के लिए धन्यवाद!

+0

दिलचस्प में प्रवेश करने पर विशेष रूप से चैट इतिहास की संख्या भेजने के लिए कारण, सब मैं जोड़ सकते हैं कि [स्थिति कोड 101] (http://xmpp.org/registrar/mucstatus.html) का अर्थ है "एमयूसी/उपयोगकर्ता संयोजन के लिए संबद्धता परिवर्तन" – Flow

+0

प्रवाह, टिप्पणी के लिए धन्यवाद। लेकिन स्टेटस कोड 110 नहीं 101 है। स्टेटस कोड 110 का मतलब है कि उपस्थिति भेजना और यह सच है। – nizhney

+1

आईआईआरसी, यह Google टॉक में कुछ अजीब व्यवहार है, जहां वे अंतराल पर आपकी उपस्थिति को फिर से प्रसारित करते हैं, जो कमरे के साथ अजीबता का कारण बनता है। – Zash

उत्तर

3

"@ conference.jabber.org" के मामले में मुझे समाधान नहीं मिला और मैंने फैसला किया कि GTalk सर्वर की वजह से समस्या और MultiUserChat के सही संस्करण "@ groupchat.google.com" के मामले में है।

room=roomName+"@conference.jabber.org"; 
MultiUserChat muc = new MultiUserChat(connection, room); 

muc.create(userName); 

muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); 

लिए:

मैंने अपने कोड बदल

room="private-chat-" + UUID.randomUUID().toString() + "@groupchat.google.com"; 
MultiUserChat muc = new MultiUserChat(connection, room); 

muc.join(userName); 

muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); 

और मैं इसे करने की कोशिश की, लेकिन मैं नई समस्या मिला उपयोगकर्ता recieve संदेश आमंत्रित करते हैं और इसे स्वीकार जब दोनों ग्राहकों साथ दुर्घटना XmlPullException "END_TAG अपेक्षित" और लॉगकैट में अंतिम स्थिति में "</स्ट्रीम: स्ट्रीम>" जैसी कुछ।

मैंने इस समस्या को Google करना शुरू कर दिया और कारण मिला। मैंने बीम क्लाइंट से एस्मैक का इस्तेमाल किया (वैसे, इससे पहले कि मैंने एस्मैक डेवलपर से एस्मैक -7 का इस्तेमाल किया) और मुझे कैसे पता है कि यह स्मैक 3.1 पर आधारित है ... मैंने पाया कि स्मैक 3.2.0 ने इस समस्या का फैसला किया। मैंने Asmack के Flow's version को डाउनलोड किया और मुझे इससे प्रसन्नता हो रही है।

अंत में मैं कहना चाहता हूँ "धन्यवाद !!!" Amack के सही संस्करण के लिए फ़्लो करने के लिए, जो दूसरों की तुलना में बेहतर काम करता है।

+0

खुशी है कि मैं मदद कर सकता हूं। [मूल उत्तर] को अपनाने के लिए मत भूलना (http://stackoverflow.com/a/5487854/194894) कि मैं अद्यतित रहने की कोशिश करता हूं। – Flow

1

कि अपने ग्राहक की वजह से नहीं है, और नहीं thats एक त्रुटि, यही आपके सर्वर के GroupChat के इतिहास सेटिंग को कॉन्फ़िगर कक्ष

+0

आप कैसे समस्या – Moes

+0

आप OpenFire सर्वर का उपयोग कर रहे हैं को हल करने के बारे में अधिक जानकारी प्रदान करें कर सकते हैं? – dasdas

संबंधित मुद्दे