0

ターン ソケットが失敗した理由がわかりません (turnSocketDidFail が呼び出されました)。誰でもこれを理解するのを手伝ってくれますか? ここで何が間違っているのか教えてください。このような質問がたくさんあることは承知しており、すでにこれらすべてを確認しており、そのため、ほとんど助けられていません。クライアントの 1 つは Spark で、もう 1 つはシミュレーターです。

設定:
サーバー: testXyz
Senderjid: user1@testXyz
Receiverjid: user2@testXyz

XMPPJID *jid = [XMPPJID jidWithString:Receiverjid];
[TURNSocket setProxyCandidates:[NSArray arrayWithObjects:Receiverjid, nil]];
TURNSocket *turnSocket = [[TURNSocket alloc] initWithStream:self.chatManager.xmppStream toJID:jid];
[turnSocket startWithDelegate:self delegateQueue:dispatch_get_main_queue()];

コンソール ログ

SEND: 
<iq type="get" to="Receiverjid" id="C15C428D-6007-4B4E-96D5-65F7A307121A"><query xmlns="http://jabber.org/protocol/disco#items"/></iq>

RECV:
<iq xmlns="jabber:client" type="result" id="C15C428D-6007-4B4E-96D5-65F7A307121A" from="Receiverjid" to="Senderjid/4840c8ae">
<query xmlns="http://jabber.org/protocol/disco#items">
<item jid="Receiverjid" node="http://jabber.org/protocol/tune"/>
<item jid="Receiverjid/Spark 2.6.3"/>
</query>
</iq>

SEND: 
<iq type="get" to="Receiverjid" id="A4D8B427-B323-4152-8B19-7B55164E9C4B">
<query xmlns="http://jabber.org/protocol/disco#info"/>
</iq>

RECV: 
<iq xmlns="jabber:client" type="result" id="A4D8B427-B323-4152-8B19-7B55164E9C4B" from="Receiverjid" to="Senderjid/4840c8ae">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="account" type="registered"/>
<identity category="pubsub" type="pep"/>
<feature var="http://jabber.org/protocol/disco#info"/>
</query>
</iq>

SEND: 
<iq type="get" to="Receiverjid/Spark 2.6.3" id="2DE55487-9203-4266-A559-1B1D3DC5FBF4">
<query xmlns="http://jabber.org/protocol/disco#info"/>
</iq>

RECV:
<iq xmlns="jabber:client" id="2DE55487-9203-4266-A559-1B1D3DC5FBF4" to="Senderjid/4840c8ae" type="result" from="Receiverjid/Spark 2.6.3">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="client" name="Smack" type="pc"/>
<feature var="http://www.xmpp.org/extensions/xep-0166.html#ns"/>
<feature var="urn:xmpp:tmp:jingle"/>
</query>
</iq>

RECV:
<iq xmlns="jabber:client" id="2DE55487-9203-4266-A559-1B1D3DC5FBF4" to="Senderjid/4840c8ae" type="result" from="Receiverjid/Spark 2.6.3">
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="client" name="Smack" type="pc"/>
<feature var="http://jabber.org/protocol/xhtml-im"/>
<feature var="http://jabber.org/protocol/muc"/>
<feature var="http://jabber.org/protocol/bytestreams"/>
<feature var="http://jabber.org/protocol/commands"/>\
<feature var="http://jabber.org/protocol/si/profile/file-transfer"/>
<feature var="http://jabber.org/protocol/si"/>
<feature var="http://jabber.org/protocol/ibb"/>
</query> 
</iq>

アップデート

私が変更している場合:

[TURNSocket setProxyCandidates:[NSArray arrayWithObjects:Receiverjid, nil]];

に:

[TURNSocket setProxyCandidates:[NSArray arrayWithObjects:Server, nil]];

それは私に与えます:

<error code="503" type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error>.

このエラーを解決するためのスタックに関する質問の 1 つで提案されているように、Receiverjid: 'user2@testXyz' を 'user2@testXyz/spark' に置き換えましたが、それでも同じエラーが発生します。

4

3 に答える 3

0

[TURNSocket setProxyCandidates:[NSArray arrayWithObjects:Receiverjid, nil]]; ここで、「Receiverjid」をホスト名 (sa.com など) に置き換えます。

于 2014-06-19T06:08:17.660 に答える
0

setProxyCandidates に何を設定すればよいかわかりませんが、サーバー名を設定しています。

<error code="503" type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error>

解決策:完全な jabber ID を渡します: username@domain/resource。 私の場合、「user2@testXyz/spark;」を変更しました。「user2@testXyz/Spark 2.6.3」へ

これらのリソース パラメータを見つける方法がわかりません。XMPPJID クラスのリソース パラメータを確認しましたが、nil です。いくつかのコンソール ログを見て、これらのパラメーターを見つけました。xmpp クラスからこれを見つける方法を誰かが知っている場合は、お知らせください。

于 2012-08-28T11:59:32.327 に答える