在实现基于GCM XMPP的应用程序服务器时,无法使用smack:EOF异常连接XMPP服务器 java.io.EOFException:没有更多可用数据-期望结束标记关闭第1行的开始标记,解析器在看到结束标记时停止@1:344 位于org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035) 更多(MXParser.java:3046) 位于org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144) 位于org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) 位于org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:279) 访问org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44) 位于org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70)

在实现基于GCM XMPP的应用程序服务器时,无法使用smack:EOF异常连接XMPP服务器 java.io.EOFException:没有更多可用数据-期望结束标记关闭第1行的开始标记,解析器在看到结束标记时停止@1:344 位于org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035) 更多(MXParser.java:3046) 位于org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144) 位于org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) 位于org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:279) 访问org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44) 位于org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:70),java,xmpp,google-cloud-messaging,smack,Java,Xmpp,Google Cloud Messaging,Smack,//资源: 我已经尝试了android网站上给出的确切代码,但它抛出了文件结尾异常,我认为这是MXParser中的一些bug(虽然不太确定)。如果smack XMPP库是问题所在,那么是否有其他XMPP库可用于GCM CCS?谁能帮我修一下这个吗。在下图中,您可以看到end stream标记未关闭,但这就是我接收数据包的方式 发送和接收的数据包 输出窗口: 由于某种原因,我重新启动了机器,并且它自己得到了修复描述了一个可能的原因: 您需要在XMPP或TCP级别发送一些心跳信号,以便 端点可以检

//资源:

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

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


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

描述了一个可能的原因:

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


例如,您可以使用()来实现这种心跳。

您能提供代码吗?
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)