Skip to content

Commit 09d552e

Browse files
committed
integrate json mapper
1 parent 7b32ff5 commit 09d552e

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<modelVersion>4.0.0</modelVersion>
1212
<artifactId>websocket-client</artifactId>
13-
<version>1.0.7</version>
13+
<version>1.0.8</version>
1414
<name>WebsocketClient</name>
1515
<packaging>jar</packaging>
1616

src/main/java/info/unterrainer/websocketclient/WebsocketConnection.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.glassfish.tyrus.client.ClientManager;
1313

14+
import info.unterrainer.commons.serialization.jsonmapper.JsonMapper;
1415
import info.unterrainer.oauthtokenmanager.LocalOauthTokens;
1516
import info.unterrainer.oauthtokenmanager.OauthTokenManager;
1617
import info.unterrainer.websocketclient.exceptions.WebsocketClosingException;
@@ -45,6 +46,7 @@ public class WebsocketConnection implements AutoCloseable {
4546
final String keycloakPassword;
4647

4748
private WebsocketEndpoints endpoints;
49+
private JsonMapper jsonMapper = JsonMapper.create();
4850

4951
final CompletableFuture<Session> sessionReady = new CompletableFuture<>();
5052

@@ -71,6 +73,28 @@ public void send(String message) {
7173
log.debug("Sent message: " + message);
7274
}
7375

76+
public void send(byte[] message) {
77+
Session s = awaitOpen(Duration.ofMillis(5000L));
78+
try {
79+
s.getBasicRemote().sendBinary(java.nio.ByteBuffer.wrap(message));
80+
} catch (Exception e) {
81+
log.error("Error sending binary message: ", e);
82+
throw new WebsocketSendingMessageException("Failed to send binary message.", e);
83+
}
84+
log.debug("Sent binary message of length: " + message.length);
85+
}
86+
87+
public void <T> send(T message) {
88+
Session s = awaitOpen(Duration.ofMillis(5000L));
89+
try {
90+
s.getBasicRemote().sendText(jsonMapper.toStringFrom(message));
91+
} catch (Exception e) {
92+
log.error("Error sending message: ", e);
93+
throw new WebsocketSendingMessageException(String.format("Failed to send message [%s].", message), e);
94+
}
95+
log.debug("Sent message: " + message);
96+
}
97+
7498
@Override
7599
public void close() {
76100
Session s = awaitOpen(Duration.ofMillis(5000L));

0 commit comments

Comments
 (0)