基于XMPP协议的Google云消息传递(服务器使用PHP和XMPPHP).它是如何工作的


Google Cloud Messaging over XMPP protocol (server working with PHP and XMPPHP). How does it work?

也许你已经听说过了。这是一个月前在Google IO上宣布的。Google Cloud Messaging只是下游(服务器->手机),但现在有了增强的CCS(云连接服务器),您可以通过XMPP协议通过持久的TCP连接向上游发送消息。我已经设计了一个应用程序与GCM和HTTP工作。它使用gcm库和其中打包的类(如GCMRegistrar)。这些类现在已被弃用,Google建议使用GoogleCloudMessaging API。

现在一切都有点不同了。你有谷歌文档,他们很好地解释了如何设计Android应用程序。但我在服务器上有问题,因为我以前从未使用过XMPP。他们在Python中给出了一个代码:http://developer.android.com/google/gcm/gs.html但我不懂Python。所以我进行了调查,然后找到了XMPPHP库。然后,您可以使用PHP并使用该库连接XMPP并发送/接收消息。

我没有使用它的经验,它对我不起作用。如何打开与Google XMPP服务器的XMPP连接?

我找到了这样打开连接的方法(这里你使用库):

$conn = new XMPPHP_XMPP($host, $port, $user, $password, $resource, $server, $printlog, $loglevel);

有人知道我必须通过哪些参数才能与谷歌CCS连接吗??

我也想知道:

如何通过XMPP向设备发送消息?我如何接收来自设备的消息??

我遇到了同样的问题,尝试使用XMPPHP,但后来发现了JAXL库并切换到它。请参阅无法连接到谷歌云连接服务器。JAXL允许您使用特殊的调试模式'log_level' => JAXL_DEBUG来查看它发送的内容。然后我看到Google给了我这个:

<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><temporary-auth-failure/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Project 1945693724760 not whitelisted.</text></failure>

这就是我不能发送任何通知的原因。您应首先在此注册CCS: https://services.google.com/fb/forms/gcm/.