@@ -63,6 +63,7 @@ public class Socket extends Emitter { |
63 | 63 | private Queue<On.Handle> subs; |
64 | 64 | private final Queue<List<Object>> receiveBuffer = new ConcurrentLinkedQueue<>(); |
65 | 65 | private final Queue<Packet<JSONArray>> sendBuffer = new ConcurrentLinkedQueue<>(); |
| 66 | + private boolean isVolatile; |
66 | 67 |
|
67 | 68 | private ConcurrentLinkedQueue<Listener> onAnyIncomingListeners = new ConcurrentLinkedQueue<>(); |
68 | 69 | private ConcurrentLinkedQueue<Listener> onAnyOutgoingListeners = new ConcurrentLinkedQueue<>(); |
@@ -242,8 +243,13 @@ public void run() { |
242 | 243 | Socket.this.acks.put(ackId, ack); |
243 | 244 | packet.id = ids++; |
244 | 245 | } |
| 246 | + final boolean isTransportWritable = io.engine != null && io.engine.checkTransportWritable(); |
| 247 | + final boolean discardPackage = isVolatile && (!isTransportWritable || !connected); |
245 | 248 |
|
246 | | - if (Socket.this.connected) { |
| 249 | + if (discardPackage) { |
| 250 | + logger.log(Level.FINE, "discard package"); |
| 251 | + } |
| 252 | + else if (Socket.this.connected) { |
247 | 253 | Socket.this.packet(packet); |
248 | 254 | } else { |
249 | 255 | Socket.this.sendBuffer.add(packet); |
@@ -492,6 +498,15 @@ public void run() { |
492 | 498 | return this; |
493 | 499 | } |
494 | 500 |
|
| 501 | + /** |
| 502 | + * converts the socket into a volatile socket and returns |
| 503 | + * @return the volatile socket |
| 504 | + */ |
| 505 | + public Socket getVolatile() { |
| 506 | + this.isVolatile = true; |
| 507 | + return this; |
| 508 | + } |
| 509 | + |
495 | 510 | /** |
496 | 511 | * Disconnects the socket. |
497 | 512 | * |
|
Apple Event Date Annou Instagram Samples For Product Posts