2

我正在尝试实现 GCM 服务器的 googls 示例,如下 所述:编写服务器代码

我收到以下错误:

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 的传出连接的规则。不过,由于资源问题,我无法将所有端口(80 或 443)转发到服务器。

关于导致此错误的任何想法,我可以解决它吗?

谢谢。

4

1 回答 1

0

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

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

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

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

于 2013-06-28T13:55:25.653 回答