【发布时间】:2016-04-04 21:17:28
【问题描述】:
1) 在断开连接模式下,我正在向服务器发送一些数据,并且在套接字错误时,我正在显示消息“请检查您的互联网连接并重试”。
2) 当套接字重新连接时,它会将第 1 步的数据发送到服务器(根据功能,它应该被丢弃)。
我不知道关闭/断开连接是否清除缓冲区,我也想在连接可用时自动重新连接。 我正在创建 android 应用程序并使用 socket.io。
【问题讨论】:
-
感谢您的帮助。我是java新手,所以这个问题可能看起来很傻。我正在使用 socket.io.client 库(chttps://github.com/socketio/socket.io-client-java)我在我的 Socket 类中获得了 sendBuffer(它是私有类变量,因此无法访问它)(src /main/java/io/socket/client/Socket.java) private final Queue
> sendBuffer = new LinkedList >();只有具有 sendBuffer 的公共方法 public Emitter emit(final String event, final Object... args) { //很多代码(这段代码正在修改一些私有类变量,所以不能覆盖。 -
if (Socket.this.connected) { Socket.this.packet(packet); } else { Socket.this.sendBuffer.add(packet);在这种情况下,您能建议清除 sendBuffer 吗?我还尝试克隆此存储库并将其添加为模块,但它也有很多其他依赖项,因此会出现很多编译错误。
-
如果您使用 Java 编程,我将无能为力。您的问题没有标记 Java(我只是在您的问题中添加了该标记),所以我错误地认为您使用的是 Javascript。您可能必须研究 Java 实现的代码,以弄清楚您可以进行哪些更改(就像我在上面的 Javascript 参考中所做的那样)。
标签: java android sockets socket.io