当前位置:首页 > 操作系统 > MacOs

java – 谷歌云连接服务器和smack

我正在尝试设置一个java服务器,以便使用smack库与Google的Cloud Connection Server进行通信.我已通过Google API设置了应用ID和API密钥,并尝试使用以下代码:

<code>import javax.net.ssl.SSLSocketFactory;
import org.jivesoftware.smack.Connection;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.SASLAuthentication;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Packet;

public class CloudMessager {

public CloudMessager(){
    ConnectionConfiguration config = new ConnectionConfiguration("gcm.googleapis.com", 5235);
    SASLAuthentication.supportSASLMechanism("PLAIN", 0);
    config.setSASLAuthenticationEnabled(true);
    config.setSocketFactory(SSLSocketFactory.getDefault());

    Connection connection = new XMPPConnection(config);
    // Connect to the server
    try {
        connection.connect();

        connection.login("SENDERID@gcm.googleapis.com", "APIKEY");

        PacketListener myListener = new PacketListener() {
            public void processPacket(Packet packet) {

            }
        };

        // Register the listener.
        connection.addPacketListener(myListener,null);

    } catch (XMPPException e) {
        e.printStackTrace();
    }       
}
}
</code>

这给了我以下错误:

<code>SASL authentication PLAIN failed: text: 
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:342)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:221)
at org.jivesoftware.smack.Connection.login(Connection.java:366)
at org.umptyfratz.strongbox.CloudMessager.<init>(CloudMessager.java:25)
</code>

我有点想知道从哪里开始.有没有其他人使用Java smack库成功连接到CCS?

解决方法:

尝试使用此选项调试连接:

<code>config.setDebuggerEnabled(true);
</code>

这将打开一个包含发送和接收数据的新窗口.

如果您发现类似“Project SENDERID未列入白名单”的内容.你必须注册你的项目here.

(这也在文档的说明中!http://developer.android.com/google/gcm/ccs.html)


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐