Skip to content

Commit e57cb70

Browse files
feat: make the signalr connection persistent
1 parent 04de8ef commit e57cb70

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/main/kotlin/infrastructure/signalr/SignalRClient.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ package infrastructure.signalr
1010

1111
import application.presenter.EventConsumer
1212
import application.presenter.EventParser
13+
import com.microsoft.signalr.HubConnection
1314
import com.microsoft.signalr.HubConnectionBuilder
15+
import com.microsoft.signalr.HubConnectionState
1416
import entities.events.EmptyEvent
1517
import entities.events.Event
1618
import infrastructure.digitaltwins.parser.DTEventParser
@@ -37,8 +39,17 @@ class SignalRClient : EventConsumer<String> {
3739
emitter.onNext(event)
3840
}
3941
}, String::class.java)
40-
connection.start()
42+
connection.persistentStart()
4143
}
4244

4345
override fun consumeEvent(inputEvent: String): Event<Any> = eventParser.parseEvent(inputEvent)
46+
47+
private fun HubConnection.persistentStart() {
48+
this.start().blockingAwait()
49+
this.onClosed {
50+
if (this.connectionState == HubConnectionState.DISCONNECTED) {
51+
this.persistentStart()
52+
}
53+
}
54+
}
4455
}

0 commit comments

Comments
 (0)