0

我想实现一个连接 Google Cloud Messaging 的 XMPP 客户端。

我已经拿起了图书馆slickxmpp。

在连接/身份验证期间,我的客户端发送 GCM 所需的第一个流:

<stream:stream to='gcm.googleapis.com' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en' version='1.0'>

但是,图书馆无法解析答案,我得到了错误:

DEBUG    Connecting to [2404:6800:4008:c00::bc]:5235
DEBUG     ==== TRANSITION disconnected -> connected
DEBUG    Starting HANDLER THREAD
DEBUG    Loading event runner
DEBUG    SEND (IMMED): <stream:stream to='gcm.googleapis.com' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' xml:lang='en' version='1.0'>
ERROR    Error reading from XML stream.
DEBUG    reconnecting...
DEBUG    SEND (IMMED): </stream:stream>
INFO     Waiting for </stream:stream> from server
DEBUG     ==== TRANSITION connected -> disconnected
DEBUG    connecting...

有人知道我为什么会得到这个吗?

任何与 GCM 的 python XMPP 连接示例都可能受到高度赞赏。

4

1 回答 1

0

您必须将 use_ssl 标志设置为 True

xmpp = ClientXMPP('PROJECT_ID@gcm.googleapis.com', 'API_KEY')
xmpp.connect(address=('gcm.googleapis.com', 5235), use_ssl=True)
于 2013-11-16T14:20:07.737 回答