XMPP聊天在Android和iOS设备之间不起作用?

XMPP聊天在Android和iOS设备之间不起作用?,android,ios,xmpp,smack,xmppframework,Android,Ios,Xmpp,Smack,Xmppframework,我正在Android和iOS上开发一个XMPP聊天应用程序 iPhone模拟器和iOS设备之间的聊天工作正常。 它还在Android emulator和Android设备之间工作。 然而,它在android设备和iOS设备之间不起作用 谁能告诉我我做错了什么 提前谢谢 更新: 消息来自安卓设备到iOS设备,但不是从iOS到安卓 我在Android上使用了这个: ConnectionConfiguration connConfig = new ConnectionConfiguration(tes

我正在Android和iOS上开发一个XMPP聊天应用程序

iPhone模拟器和iOS设备之间的聊天工作正常。 它还在Android emulator和Android设备之间工作。 然而,它在android设备和iOS设备之间不起作用

谁能告诉我我做错了什么

提前谢谢

更新:

消息来自安卓设备到iOS设备,但不是从iOS到安卓

我在Android上使用了这个:

ConnectionConfiguration connConfig = new ConnectionConfiguration(testHost,portNumber);
connection = new XMPPConnection(connConfig);
connConfig.setSASLAuthenticationEnabled(true); 
我在iOS中使用了这个:

XMPPJID *jid=[XMPPJID jidWithString:loginDetails.username];

password=loginDetails.password; 

[[self xmppStream] setMyJID:jid];
NSError *error;
if (![[self xmppStream] connect:&error])
{
    NSLog(@"Error connecting: %@", error);
    return NO;
}
return YES;

if (allowSelfSignedCertificates)
{
    [settings setObject:[NSNumber numberWithBool:YES] forKey:(NSString *)kCFStreamSSLAllowsAnyRoot];
}

if (allowSSLHostNameMismatch)
{
    [settings setObject:[NSNull null] forKey:(NSString *)kCFStreamSSLPeerName];
}

else
{
    // Google does things incorrectly (does not conform to RFC).
    // Because so many people ask questions about this (assume xmpp framework is broken),
    // I've explicitly added code that shows how other xmpp clients "do the right thing"
    // when connecting to a google server (gmail, or google apps for domains).

    NSString *expectedCertName = nil;

    NSString *serverHostName = [sender hostName];
    NSString *virtualHostName = [[sender myJID] domain];

    if ([serverHostName isEqualToString:@"talk.google.com"])
    {
        if ([virtualHostName isEqualToString:@"gmail.com"])
            expectedCertName = virtualHostName;
        else 
            expectedCertName = serverHostName;
    }
    else
    {
        expectedCertName = serverHostName;
    }

    [settings setObject:expectedCertName forKey:(NSString *)kCFStreamSSLPeerName];
}

你应该提供更多的细节。我想问题在于发送/接收过程,这在Android/iPhone设备上是不一样的。这就是为什么它可以从Android到Android,从iPhone到iPhone工作。@Lukas Knuth它甚至可以从Android——jwchat和jwchat——iPhone工作。alloeSelfSignedCertificates在iphone和Android中都设置为YES。我们需要一些代码来提供答案。如果这是问题的根源…我添加了代码,请检查一下