(Object url, Object messageHash2, Object message, Object subscribeHash2, Object subscription)
| 1682 | } |
| 1683 | |
| 1684 | public CompletableFuture<Object> watch(Object url, Object messageHash2, Object message, Object subscribeHash2, Object subscription) { |
| 1685 | String messageHash = messageHash2.toString(); |
| 1686 | String subscribeHash = subscribeHash2 != null ? subscribeHash2.toString() : messageHash; |
| 1687 | var client = this.client(url); |
| 1688 | |
| 1689 | io.github.ccxt.ws.Future future = client.future(messageHash); |
| 1690 | |
| 1691 | if (client.subscriptionsMap().putIfAbsent(subscribeHash, subscription != null ? subscription : true) == null) { |
| 1692 | client.connect(0).thenAccept(connected -> { |
| 1693 | if (message != null) { |
| 1694 | try { |
| 1695 | client.send(message); |
| 1696 | } catch (Exception ex) { |
| 1697 | client.subscriptionsMap().remove(subscribeHash); |
| 1698 | future.reject(ex); |
| 1699 | } |
| 1700 | } |
| 1701 | }).exceptionally(ex -> { |
| 1702 | client.subscriptionsMap().remove(subscribeHash); |
| 1703 | future.reject(ex); |
| 1704 | return null; |
| 1705 | }); |
| 1706 | } |
| 1707 | return future.getFuture(); |
| 1708 | } |
| 1709 | |
| 1710 | // Note: a single subscribe message is sent for all symbols, matching JS/C# design. |
| 1711 | // Exchange-specific code is responsible for building the message with all symbols. |
no test coverage detected