GCM XMPP服务器身份验证

时间:2013-06-28 11:14:48

标签: android python push-notification xmpp google-cloud-messaging

我正在尝试实现GCM服务器的googls示例,如下所述: Writing the Server Code

我收到以下错误:

DEBUG: socket       sent  <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">...</auth>
DEBUG: socket       error Socket error while receiving data
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/xmpp/transports.py", line 146, in receive
    try: received = self._recv(BUFLEN)
SSLError: [Errno 8] _ssl.c:1325: EOF occurred in violation of protocol
DEBUG: socket       error Socket operation failed
Authentication failed!

我的服务器位于NAT和防火墙之后。我已经打开了一个规则,用于传出连接到ANY并转发端口5228-5230,如上所述here。但是,由于资源问题,我无法将所有端口转发到服务器,也不能转发80或443.

有关导致此错误的原因的任何想法,我可以解决吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我不确定这是你唯一的问题,但你打开了错误的端口:

  

GCM云连接服务器(CCS)是一个XMPP端点,在http://gcm.googleapis.com端口 5235 上运行。

只有当您的设备通过WiFi连接到互联网时,您的Android设备才需要从GCM服务器接收消息:

  

注意:如果您的组织有防火墙限制进出互联网的流量,则需要将其配置为允许与GCM 连接,以便Android设备接收消息。要打开的端口是:5228,5229和5230. GCM通常仅使用5228,但有时使用5229和5230. GCM不提供特定的IP,因此您应该允许防火墙接受到包含的所有IP地址的传出连接在Google的ASN 15169中列出的IP块中。