@@ -37,6 +37,8 @@ public class WebsocketConnection implements AutoCloseable {
3737
3838 @ Getter
3939 private final String host ;
40+ @ lombok .Builder .Default
41+ private final String name = "" ;
4042 private final Consumer <EventContext > onOpenHandler ;
4143 private final Consumer <EventContext > onMessageHandler ;
4244 private final Consumer <EventContext > onBinaryMessageHandler ;
@@ -63,7 +65,7 @@ public Session awaitOpen(Duration timeoutInMillis) {
6365 }
6466 return sessionReady .get (timeoutInMillis .toMillis (), TimeUnit .MILLISECONDS );
6567 } catch (Exception e ) {
66- throw new IllegalStateException ("WebSocket did not open in time." , e );
68+ throw new IllegalStateException ("(" + name + ") WebSocket did not open in time." , e );
6769 }
6870 }
6971
@@ -75,43 +77,45 @@ public void sendPing() {
7577 try {
7678 s .getBasicRemote ().sendPing (ByteBuffer .allocate (1 ));
7779 } catch (Exception e ) {
78- log .error ("Error sending ping: " , e );
79- throw new WebsocketSendingMessageException (String .format ("Failed to send ping." ), e );
80+ log .error ("(" + name + ") Error sending ping: " , e );
81+ throw new WebsocketSendingMessageException (String .format ("(" + name + ") Failed to send ping." ), e );
8082 }
81- log .debug ("Sent ping" );
83+ log .debug ("(" + name + ") Sent ping" );
8284 }
8385
8486 public void send (String message ) {
8587 Session s = awaitOpen (Duration .ofMillis (5000L ));
8688 try {
8789 s .getBasicRemote ().sendText (message );
8890 } catch (Exception e ) {
89- log .error ("Error sending message: " , e );
90- throw new WebsocketSendingMessageException (String .format ("Failed to send message [%s]." , message ), e );
91+ log .error ("(" + name + ") Error sending message: " , e );
92+ throw new WebsocketSendingMessageException (
93+ String .format ("(" + name + ") Failed to send message [%s]." , message ), e );
9194 }
92- log .debug ("Sent message: " + message );
95+ log .debug ("(" + name + ") Sent message: " + message );
9396 }
9497
9598 public void send (byte [] message ) {
9699 Session s = awaitOpen (Duration .ofMillis (5000L ));
97100 try {
98101 s .getBasicRemote ().sendBinary (java .nio .ByteBuffer .wrap (message ));
99102 } catch (Exception e ) {
100- log .error ("Error sending binary message: " , e );
101- throw new WebsocketSendingMessageException ("Failed to send binary message." , e );
103+ log .error ("(" + name + ") Error sending binary message: " , e );
104+ throw new WebsocketSendingMessageException ("(" + name + ") Failed to send binary message." , e );
102105 }
103- log .debug ("Sent binary message of length: " + message .length );
106+ log .debug ("(" + name + ") Sent binary message of length: " + message .length );
104107 }
105108
106109 public <T > void send (T message ) {
107110 Session s = awaitOpen (Duration .ofMillis (5000L ));
108111 try {
109112 s .getBasicRemote ().sendText (jsonMapper .toStringFrom (message ));
110113 } catch (Exception e ) {
111- log .error ("Error sending message: " , e );
112- throw new WebsocketSendingMessageException (String .format ("Failed to send message [%s]." , message ), e );
114+ log .error ("(" + name + ") Error sending message [{}]" , message , e );
115+ throw new WebsocketSendingMessageException (
116+ String .format ("(" + name + ") Failed to send message [%s]." , message ), e );
113117 }
114- log .debug ("Sent message: " + message );
118+ log .debug ("(" + name + ") Sent message: " + message );
115119 }
116120
117121 @ Override
@@ -120,48 +124,52 @@ public void close() {
120124 try {
121125 s .close (new CloseReason (CloseReason .CloseCodes .NORMAL_CLOSURE , "Normal closure" ));
122126 } catch (IOException e ) {
123- log .error ("Error closing session." , e );
124- throw new WebsocketClosingException ("Failed to close WebSocket session." , e );
127+ log .error ("(" + name + ") Error closing session." , e );
128+ throw new WebsocketClosingException ("(" + name + ") Failed to close WebSocket session." , e );
125129 }
126130 }
127131
128132 public void establish () {
129133 String at = null ;
130134 String accessToken = null ;
131- log .debug ("Establish called." );
135+ log .debug ("(" + name + ") Establish called." );
132136
133137 ClientManager container ;
134138 try {
135139 container = ClientManager .createClient ();
136- log .info ("ClientManager created" );
140+ log .info ("(" + name + ") ClientManager created" );
137141 } catch (Exception e ) {
138- log .error ("Failed to create ClientManager: {}" , e .getMessage (), e );
139- throw new WebsocketConnectingException ("Failed to create WebSocket ClientManager." , e );
142+ log .error ("(" + name + ") Failed to create ClientManager: {}" , e .getMessage (), e );
143+ throw new WebsocketConnectingException ("(" + name + ") Failed to create WebSocket ClientManager." , e );
140144 }
141- endpoints = new WebsocketEndpoints (this );
145+ endpoints = new WebsocketEndpoints (this , name );
142146
143147 if (keycloakHost != null ) {
144148 OauthTokenManager tokenManager = new OauthTokenManager (keycloakHost , keycloakClient );
145149 LocalOauthTokens tokens = tokenManager .getTokensFromCredentials (keycloakClient , keycloakUser ,
146150 keycloakPassword );
147151 accessToken = tokens .getAccessToken ();
148152 at = "Bearer " + accessToken ;
153+ log .debug ("(" + name + ") Access token retrieved: {}" , accessToken );
149154 }
150155
151156 try {
152157 container .connectToServer (endpoints ,
153158 ClientEndpointConfig .Builder .create ().configurator (new ClientEndpointConfig .Configurator () {
154159 }).build (), URI .create (host ));
155160 if (at != null ) {
161+ log .debug ("(" + name + ") Access token provided, sending authentication token." );
156162 Session s = awaitOpen (Duration .ofMillis (5000L ));
157163 s .getBasicRemote ().sendText (at );
164+ log .debug ("(" + name + ") Authentication token sent: {}" , at );
158165 } else {
159- log .debug ("No access token provided, connecting without authentication." );
166+ log .debug ("(" + name + ") No access token provided, connecting without authentication." );
160167 }
161168 } catch (Exception e ) {
162- log .error ("Error connecting to WebSocket server: " , e );
163- throw new WebsocketConnectingException ("Failed to connect to WebSocket server at " + host , e );
169+ log .error ("(" + name + ") Error connecting to WebSocket server: " , e );
170+ throw new WebsocketConnectingException ("(" + name + ") Failed to connect to WebSocket server at " + host ,
171+ e );
164172 }
165- log .info ("WebSocket client connected to: {}" , host );
173+ log .info ("(" + name + ") WebSocket client connected to: {}" , host );
166174 }
167175}
0 commit comments