Skip to content

Commit d8093e4

Browse files
Merge pull request #117 from leanix/feature/CID-3856/Frequent-Websocket-connection-loss
CID-3856: Reduce Websocket connection losses
2 parents d7f75cf + a57aabc commit d8093e4

File tree

4 files changed

+12
-3
lines changed

4 files changed

+12
-3
lines changed

src/main/kotlin/net/leanix/githubagent/config/WebSocketClientConfig.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.resilience4j.retry.annotation.Retry
55
import net.leanix.githubagent.handler.BrokerStompSessionHandler
66
import net.leanix.githubagent.services.LeanIXAuthService
77
import net.leanix.githubagent.shared.GitHubAgentProperties.GITHUB_AGENT_VERSION
8+
import org.springframework.beans.factory.annotation.Value
89
import org.springframework.context.annotation.Bean
910
import org.springframework.context.annotation.Configuration
1011
import org.springframework.messaging.converter.MappingJackson2MessageConverter
@@ -23,7 +24,8 @@ class WebSocketClientConfig(
2324
private val objectMapper: ObjectMapper,
2425
private val leanIXAuthService: LeanIXAuthService,
2526
private val leanIXProperties: LeanIXProperties,
26-
private val gitHubEnterpriseProperties: GitHubEnterpriseProperties
27+
private val gitHubEnterpriseProperties: GitHubEnterpriseProperties,
28+
@Value("\${websocket.heartbeat-interval}") private val heartbeatInterval: Long
2729
) {
2830
@Retry(name = "ws_init_session")
2931
fun initSession(): StompSession {
@@ -50,7 +52,7 @@ class WebSocketClientConfig(
5052
val sockJsClient = SockJsClient(transports)
5153
val stompClient = WebSocketStompClient(sockJsClient)
5254
stompClient.messageConverter = jsonConverter
53-
stompClient.defaultHeartbeat = longArrayOf(10000, 10000)
55+
stompClient.defaultHeartbeat = longArrayOf(heartbeatInterval, 0)
5456
val scheduler = ThreadPoolTaskScheduler()
5557
scheduler.initialize()
5658
stompClient.taskScheduler = scheduler

src/main/resources/application.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ leanix:
1212
technical-user-token: ${LEANIX_TECHNICAL_USER_TOKEN}
1313
webhookEventService:
1414
waitingTime: 10000
15+
websocket:
16+
heartbeat-interval: 30000
1517

1618
resilience4j.retry:
1719
configs:

src/test/kotlin/net/leanix/githubagent/config/WebSocketClientConfigTests.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,15 @@ class WebSocketClientConfigTests {
3434
stompSession = mockk()
3535
authService = mockk()
3636
leanIXAuthService = mockk()
37+
val heartbeatInterval = 10000L
38+
3739
webSocketClientConfig = WebSocketClientConfig(
3840
brokerStompSessionHandler,
3941
objectMapper,
4042
leanIXAuthService,
4143
leanIXProperties,
42-
gitHubEnterpriseProperties
44+
gitHubEnterpriseProperties,
45+
heartbeatInterval
4346
)
4447

4548
GitHubAgentProperties.GITHUB_AGENT_VERSION = "test-version"

src/test/resources/application.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,5 @@ leanix:
1212
technical-user-token: ${LEANIX_TECHNICAL_USER_TOKEN:dummy}
1313
webhookEventService:
1414
waitingTime: 100
15+
websocket:
16+
heartbeat-interval: 30000

0 commit comments

Comments
 (0)