3

独自のOpenfireサーバーをセットアップし、SparkとAdiumでテストしました。XMPPFramework for iOSからサンプルプロジェクトを実行すると、次の認証エラーが発生しました。

2011-11-16 01:34:26:850 iPhoneXMPP[1245:207] iPhoneXMPPAppDelegate: xmppStream:socketDidConnect:
2011-11-16 01:34:26:850 iPhoneXMPP[1245:8d0f] SEND: <stream:stream xmlns='jabber:client'  xmlns:stream='http://etherx.jabber.org/streams' version='1.0' to='flashmatch.net'>
2011-11-16 01:34:27:464 iPhoneXMPP[1245:7b13] RECV: <stream:stream  xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="ip-10-112-57-167"   id="ff9c2cf2" xml:lang="en" version="1.0"/>
2011-11-16 01:34:27:772 iPhoneXMPP[1245:8d0f] RECV: <stream:features><starttls   xmlns="urn:ietf:params:xml:ns:xmpp-tls"/><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"> <mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism>CRAM-MD5</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/></stream:features>
2011-11-16 01:34:27:772 iPhoneXMPP[1245:207] iPhoneXMPPAppDelegate: xmppStreamDidConnect:
2011-11-16 01:34:27:772 iPhoneXMPP[1245:207] SEND: <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>
2011-11-16 01:34:28:079 iPhoneXMPP[1245:7b13] RECV: <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cmVhbG09ImlwLTEwLTExMi01Ny0xNjciLG5vbmNlPSIycWZoY01JL0R2a0Z0ME41TmNSdGpUaGk0dmVOamk4YUxHMU9LMmZwIixxb3A9ImF1dGgiLGNoYXJzZXQ9dXRmLTgsYWxnb3JpdGhtPW1kNS1zZXNz</challenge>
2011-11-16 01:34:28:079 iPhoneXMPP[1245:7b13] decoded response: username="alan",realm="ip- 10-112-57-167",nonce="2qfhcMI/DvkFt0N5NcRtjThi4veNji8aLG1OK2fp",cnonce="8C2C32EC-532A-4A75-8166-F75387CE2F84",nc=00000001,qop=auth,digest-uri="xmpp/flashmatch.net",response=8b1ad8c7c968a92d36ff6ed895b0ed80,charset=utf-8
2011-11-16 01:34:28:080 iPhoneXMPP[1245:7b13] SEND: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">dXNlcm5hbWU9ImFsYW4iLHJlYWxtPSJpcC0xMC0xMTItNTctMTY3Iixub25jZT0iMnFmaGNNSS9EdmtGdDBONU5jUnRqVGhpNHZlTmppOGFMRzFPSzJmcCIsY25vbmNlPSI4QzJDMzJFQy01MzJBLTRBNzUtODE2Ni1GNzUzODdDRTJGODQiLG5jPTAwMDAwMDAxLHFvcD1hdXRoLGRpZ2VzdC11cmk9InhtcHAvZmxhc2htYXRjaC5uZXQiLHJlc3BvbnNlPThiMWFkOGM3Yzk2OGE5MmQzNmZmNmVkODk1YjBlZDgwLGNoYXJzZXQ9dXRmLTg=</response>
2011-11-16 01:34:28:386 iPhoneXMPP[1245:8d0f] RECV: <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>
2011-11-16 01:34:28:386 iPhoneXMPP[1245:207] iPhoneXMPPAppDelegate: xmppStream:didNotAuthenticate:

ただし、talk.google.comに接続する場合は、同じサンプルプロジェクトが適切に機能します。ここで何が悪かったのか誰か知っていますか?

4

3 に答える 3

5

コードを見ずに問題を推測するのは困難ですが、認証の問題はユーザーの JID またはパスワードの問題を示しています。したがって、考えられる2つの問題を考えることができます。

  1. Openfire でユーザーとパスワードが正しく設定されていることを確認する必要があります。
  2. 次に、「サーバー名」プロパティが正しく設定されているかどうかを確認します。管理パネル -> サーバー情報 -> サーバー名 に移動します。これは、iOS プロジェクト内のユーザーのドメイン名と一致する必要があります。この例を見てみましょう: サーバー名を「127.0.0.1」に設定している場合、YOURUSER@127.0.0.1 を使用する必要があります。YOURUSER@localhost を使用すると、認証プロセスで失敗します。
于 2012-04-07T19:39:52.363 に答える
3

管理パネルで openfire ServerName を確認できます。

サーバー マネージャー > サーバー情報 > サーバー名: [server_name]

ホスト アドレス / IP は、サーバー名のものとは異なる場合があります:

[host_address]:9090/ - 管理パネル [server_name]

サーバー名がホストアドレス設定と異なる場合、以下のようになります。ほとんどの場合、サーバー名とホスト アドレスは同じです。そのため、iOS xmppframework での認証に問題はありません。

xmppStream.hostName = @"hostaddress";
xmppStream.hostPort = 5222;

jabberID = @"username@servername";
于 2013-05-10T04:21:43.430 に答える