【问题标题】:Could Not Connect XMPP Server with smack : EOF Exception when implementing GCM XMPP-based App Server无法使用 smack 连接 XMPP 服务器:实现基于 GCM XMPP 的应用服务器时出现 EOF 异常
【发布时间】:2013-08-21 12:30:38
【问题描述】:
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...</mechanisms></stream:features>... @1:344
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:279)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70)

//资源:https://developer.android.com/google/gcm/ccs.html#implement

我已经尝试了 android 网站中给出的确切代码,但它抛出了文件末尾异常,我认为这是 MXParser 中的一些错误(虽然不太确定)。如果 smack XMPP 库是问题所在,是否还有其他可用于 GCM CCS 的 xmpp 库?谁能帮我解决这个问题。在下图中,您可以看到结束流标签未关闭,但这就是我接收数据包的方式。

发送和接收数据包 输出窗口:

【问题讨论】:

  • 你能把代码提供给我吗?

标签: java xmpp google-cloud-messaging smack


【解决方案1】:

描述了一个可能的原因here

您需要发送一些心跳 - 无论是在 XMPP 还是 TCP 级别 - 所以您的 端点可以检测(或阻止)关闭的 TCP。 许多路由器/NAT 无法发送 RST 或 FIN,只是断开 TCP 连接。

例如,您可以使用PingManager (smack-extensions) 来实现这样的心跳。

【讨论】:

    【解决方案2】:

    由于某种原因,我重新启动了机器,它自己修复了

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 2012-12-28
      • 2016-11-05
      相关资源
      最近更新 更多