Skip to content

Commit fdd3aea

Browse files
committed
Update connect logic
1 parent ca49f74 commit fdd3aea

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

core/websocket/src/main/java/org/phoebus/core/websocket/springframework/WebSocketClientService.java

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -154,22 +154,26 @@ public void connect() {
154154
StompSessionHandler sessionHandler = new StompSessionHandler();
155155
logger.log(Level.INFO, "Attempting web socket connection to " + connectUrl);
156156
new Thread(() -> {
157-
while (attemptReconnect.get()) {
158-
try {
157+
while (true) {
158+
try{
159159
synchronized (WebSocketClientService.this) {
160-
stompSession = stompClient.connect(connectUrl, sessionHandler).get();
161-
stompSession.subscribe(this.subscriptionEndpoint, new StompFrameHandler() {
162-
@Override
163-
public Type getPayloadType(StompHeaders headers) {
164-
return String.class;
165-
}
160+
if(attemptReconnect.get()) {
161+
stompSession = stompClient.connect(connectUrl, sessionHandler).get();
162+
stompSession.subscribe(this.subscriptionEndpoint, new StompFrameHandler() {
163+
@Override
164+
public Type getPayloadType(StompHeaders headers) {
165+
return String.class;
166+
}
166167

167-
@Override
168-
public void handleFrame(StompHeaders headers, Object payload) {
169-
logger.log(Level.INFO, "Handling subscription frame: " + payload);
170-
webSocketMessageHandlers.forEach(h -> h.handleWebSocketMessage((String) payload));
171-
}
172-
});
168+
@Override
169+
public void handleFrame(StompHeaders headers, Object payload) {
170+
logger.log(Level.INFO, "Handling subscription frame: " + payload);
171+
webSocketMessageHandlers.forEach(h -> h.handleWebSocketMessage((String) payload));
172+
}
173+
});
174+
attemptReconnect.set(false);
175+
}
176+
break;
173177
}
174178
} catch (Exception e) {
175179
logger.log(Level.WARNING, "Got exception when trying to connect", e);
@@ -210,7 +214,6 @@ public void handleFrame(StompHeaders headers, @Nullable Object payload) {
210214
*/
211215
@Override
212216
public void afterConnected(StompSession session, StompHeaders connectedHeaders) {
213-
attemptReconnect.set(false);
214217
logger.log(Level.INFO, "Connected to web socket");
215218
if (connectCallback != null) {
216219
connectCallback.run();

0 commit comments

Comments
 (0)