2016-06-23 2 views
1

です。XMPPFramework:xmpp mosで作成されたグループにメッセージを送信しようとすると、このエラーが発生する理由はxmpp ios

これは私が

<message xmlns="jabber:client" from="[email protected]" to="[email protected]/787052459360862999820058" type="error"><body>hiiii</body><error code="406" type="modify"><not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></not-acceptable><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Only occupants are allowed to send messages to the conference</text></error></message> 

エラーテキスト受けていたメッセージパケットである:のみ乗員が会議にメッセージを送信することを許可されている、私はグループを作成するために使用しています

方法は次のとおりです。XMPPFramework - How to create a MUC room and invite users?

答えて

2

エラーメッセージは自明のようです:あなたは乗員ではありません(XEP-0045で定義されているように=客室に参加していません)、メッセージを送信できません。

あなたは参照用XEP-0045でロール権限を確認することができます。http://xmpp.org/extensions/xep-0045.html#roles-priv

のみの参加者は、全員にメッセージを送ることができます。

+0

あなたはそうですが、部屋に入り、初めてチャットしたとき、クライアントのiosアプリを終了してアプリを再起動したときにこのエラーは発生しません。まあこれは実際の問題です –

+2

あなたが入居するときは、乗員です。アプリを閉じると、クライアントはMUCを含むオフラインでプレゼンスを送信しており、あなたはもう乗っていません。つまり、再び乗客になり、メッセージを送信できるようにするには、ログインに再度参加する必要があります。この動作はXEP-0045でよく定義されています。 –

+0

@MickaëlRémond何か問題が起こったことをコードで確認できますか? let roomStorage = XMPPRoomCoreDataStorage.sharedInstance() let roomJid = XMPPJID.init(文字列: "\(groupName)@conference。\(constantVar.hostUrl)") let xmppRoom = XMPPRoom.init(roomStorage:roomStorage、jid:roomJid 、dispatchQueue:DispatchQueue.main)XMPPRoom xmppRoom.activate(self.xmppStream) xmppRoom.addDelegate(自己、delegateQueue:DispatchQueue.main) xmppRoom.join(usingNickname:self.xmppStream.myJID.bare()のように、歴史: nil、password:nil) – Dipang

関連する問題