Commit Graph

31 Commits

Author SHA1 Message Date
Harshvardhan Gupta
4f45e3c127 fix: make acks thread safe (#779) 2025-02-06 09:16:05 +01:00
Damien Arrachequesne
54645ece2c fix: discard acknowledgements upon disconnection
Previously, getting disconnected while waiting for an acknowledgement
would create a memory leak, as the acknowledgement was never received
and the handler would stay in memory forever.

See also: 34cbfbb532

Related: https://github.com/socketio/socket.io-client-java/issues/446
2024-07-10 11:43:48 +02:00
Harshvardhan Gupta
b00ae8eec1 fix: make sendBuffer thread safe (#769)
Clearing the buffer upon timeout could lead to:

```
java.util.ConcurrentModificationException
	at java.base/java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:970)
	at java.base/java.util.LinkedList$ListItr.next(LinkedList.java:892)
	at io.socket.client.Socket$6$1.run(Socket.java:232)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:556)
	at java.base/java.util.TimerThread.run(Timer.java:506)
```

Related:

- https://github.com/socketio/socket.io-client-java/issues/710
- https://github.com/socketio/socket.io-client-java/issues/727
- https://github.com/socketio/socket.io-client-java/pull/758
- https://github.com/socketio/socket.io-client-java/issues/759
2024-07-10 11:10:17 +02:00
Damien Arrachequesne
95ecf222d2 fix: prevent socket from reconnecting after middleware failure
See also: d54d12ce63
2022-07-10 22:59:57 +02:00
Damien Arrachequesne
c7d50b8ae9 feat: implement catch-all listeners
Syntax:

```java
socket.onAnyIncoming(new Emitter.Listener() {
    @Override
    public void call(Object... args) {
        // ...
    }
});

socket.onAnyOutgoing(new Emitter.Listener() {
    @Override
    public void call(Object... args) {
        // ...
    }
});
```

Related:

- https://github.com/socketio/engine.io-client-java/issues/99
- https://github.com/socketio/socket.io-client-java/issues/243
- https://github.com/socketio/socket.io-client-java/issues/475
2022-07-08 20:39:36 +02:00
Damien Arrachequesne
fca3b9507d feat: emit with timeout
This feature allows to send a packet and expect an acknowledgement from
the server within the given delay.

Syntax:

```java
socket.emit("hello", "world", new AckWithTimeout(5000) {
    @Override
    public void onTimeout() {
        // ...
    }

    @Override
    public void onSuccess(Object... args) {
        // ...
    }
});
```

Related:

- https://github.com/socketio/socket.io-client-java/issues/309
- https://github.com/socketio/socket.io-client-java/pull/517
2022-07-08 19:46:18 +02:00
Damien Arrachequesne
d324e7f396 fix: emit a CONNECT_ERROR event upon connection failure
See also: 53c73749a8
2021-04-27 00:17:05 +02:00
Damien Arrachequesne
4885e7d59f fix: ensure buffered events are sent in order
Before this commit, an event sent in the "connect" handler could be
sent before the events that were buffered while disconnected.

Related: https://github.com/socketio/socket.io-client/issues/1458
2021-04-27 00:12:46 +02:00
Damien Arrachequesne
48fec45740 refactor: minor cleanup
- replace explicit types by <>
- remove unnecessary interface modifiers
2021-04-26 11:19:02 +02:00
Damien Arrachequesne
79cb27fc97 feat: add support for Socket.IO v3
Including:

- 969debe88c
- 6494f61be0
- 132f8ec918
- f8f60fc860

Reference: https://github.com/socketio/socket.io-protocol#difference-between-v5-and-v4
2020-12-15 00:05:22 +01:00
Kushtrim Pacaj
54b73114d1 fix: don't process socket.connect() if we are already re-connecting (#577) 2020-12-10 11:47:20 +01:00
nkzawa
eeadb50aa9 clean up imports 2017-07-14 14:22:44 +09:00
nkzawa
6e5fab39de Merge branch 'master' into fix/compatible-v2 2017-07-14 14:20:39 +09:00
nkzawa
2ec4167eb8 add tests 2017-07-14 12:40:22 +09:00
Naoyuki Kanezawa
9b5c684349 Merge pull request #423 from sergey-davydov/donotformateventdata
Add condition to log only if fine level is loggable
2017-07-14 11:25:20 +09:00
nkzawa
06068654c3 improve Socket#emit 2017-07-14 00:09:44 +09:00
nkzawa
4811368854 send query on connecti 2017-07-12 01:09:11 +09:00
Sergey Davydov
229a820bf5 Add condition to log only if fine level is loggable
Even if FINE level is not loggable String.format() works every time and
tries to format string with all the events. Sometimes it causes
OutOfMemory exceptions.
2017-05-28 13:01:18 +03:00
nkzawa
0d4d455704 add ping and pong events 2016-02-01 00:48:57 +09:00
nkzawa
599eb98c6e fix disconnection while in opening state 2016-01-31 23:55:53 +09:00
nkzawa
4aed6c68af don't create json array twice 2016-01-30 00:02:06 +09:00
Ciro S. Costa
f0832ffc61 Fixes event type when emitting binary_ack
When submitting binary data in an Ack to the server the packet's type
was not the expected (should be 6 - binary_ack - and not 3 - ack).

This commit introduces tests as well a fix for the given problem.
2016-01-27 12:11:22 -03:00
Naoyuki Kanezawa
a3f2b8cd00 Merge pull request #259 from DevFactory/release/collection-isempty-fix-1
Code Quality Improvement - Collection.isEmpty() should be used to test for emptiness
2015-12-18 11:51:44 +09:00
Naoyuki Kanezawa
57d8e5ebff Merge pull request #256 from DevFactory/release/objects-should-be-compared-with-equals()-fix-1
Code Quality Improvement - Objects should be compared with "equals()"
2015-12-18 11:44:44 +09:00
Naoyuki Kanezawa
9b33f23875 Merge pull request #255 from DevFactory/release/exception-handlers-fix-1
Code Quality Improvement - Exception handlers should preserve the original exception
2015-12-18 11:42:36 +09:00
nkzawa
bc45e15d03 suppress cast warnings 2015-12-13 02:52:55 +09:00
Christian Ivan
2143774a1e Code Quality Improvement - Exception handlers should preserve the original exception
Update

Update
2015-12-06 15:38:31 +07:00
Christian Ivan
eac538dfe0 Code Quality Improvement - Objects should be compared with "equals()"
Update
2015-12-02 23:11:17 +07:00
Christian Ivan
d364404501 Code Quality Improvement - Collection.isEmpty() should be used to test for emptiness 2015-12-02 17:17:46 +07:00
nkzawa
33a47da3f6 bump engine.io-client 2015-08-31 11:25:07 +09:00
nkzawa
d0039f7910 move package name 2015-08-31 03:23:03 +09:00