docs: multiplexing
Related: https://github.com/socketio/socket.io-client-java/pull/716
This commit is contained in:
@@ -475,3 +475,52 @@ options.webSocketFactory = okHttpClient;
|
||||
|
||||
Socket socket = IO.socket(URI.create("https://example.com"), options);
|
||||
```
|
||||
|
||||
## Multiplexing
|
||||
|
||||
The Java client does support multiplexing: this allows to split the logic of your application into distinct modules, while using one single WebSocket connection to the server.
|
||||
|
||||
Reference: https://socket.io/docs/v4/namespaces/
|
||||
|
||||
```java
|
||||
Socket socket = IO.socket(URI.create("https://example.com")); // the main namespace
|
||||
Socket productSocket = IO.socket(URI.create("https://example.com/product")); // the "product" namespace
|
||||
Socket orderSocket = IO.socket(URI.create("https://example.com/order")); // the "order" namespace
|
||||
|
||||
// all 3 sockets share the same Manager
|
||||
System.out.println(socket.io() == productSocket.io()); // true
|
||||
System.out.println(socket.io() == orderSocket.io()); // true
|
||||
```
|
||||
|
||||
Please note that multiplexing will be disabled in the following cases:
|
||||
|
||||
- multiple creation for the same namespace
|
||||
|
||||
```java
|
||||
Socket socket = IO.socket(URI.create("https://example.com"));
|
||||
Socket socket2 = IO.socket(URI.create("https://example.com"));
|
||||
|
||||
System.out.println(socket.io() == socket2.io()); // false
|
||||
```
|
||||
|
||||
- different domains
|
||||
|
||||
```java
|
||||
Socket socket = IO.socket(URI.create("https://first.example.com"));
|
||||
Socket socket2 = IO.socket(URI.create("https://second.example.com"));
|
||||
|
||||
System.out.println(socket.io() == socket2.io()); // false
|
||||
```
|
||||
|
||||
- usage of the [forceNew](#forceNew) option
|
||||
|
||||
```java
|
||||
IO.Options options = IO.Options.builder()
|
||||
.setForceNew(true)
|
||||
.build();
|
||||
|
||||
Socket socket = IO.socket(URI.create("https://example.com"));
|
||||
Socket socket2 = IO.socket(URI.create("https://example.com/admin"), options);
|
||||
|
||||
System.out.println(socket.io() == socket2.io()); // false
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user