feat: [NETWORK] websockets (#305)

Co-authored-by: Florent Champigny <florent@bere.al>
This commit is contained in:
Florent CHAMPIGNY 2025-10-05 14:00:08 +02:00 committed by GitHub
parent 29f76976b3
commit bf86ba4e6a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 673 additions and 115 deletions

View file

@ -4,12 +4,20 @@ import io.github.openflocon.flocon.core.FloconPlugin
import io.github.openflocon.flocon.plugins.network.model.BadQualityConfig
import io.github.openflocon.flocon.plugins.network.model.FloconNetworkCallRequest
import io.github.openflocon.flocon.plugins.network.model.FloconNetworkCallResponse
import io.github.openflocon.flocon.plugins.network.model.FloconWebSocketEvent
import io.github.openflocon.flocon.plugins.network.model.MockNetworkResponse
interface FloconNetworkPlugin : FloconPlugin {
val mocks: Collection<MockNetworkResponse>
val badQualityConfig: BadQualityConfig?
fun logRequest(request: FloconNetworkCallRequest)
fun logResponse(response: FloconNetworkCallResponse)
fun logWebSocket(
event: FloconWebSocketEvent,
)
}

View file

@ -0,0 +1,19 @@
package io.github.openflocon.flocon.plugins.network.model
class FloconWebSocketEvent(
val websocketUrl: String,
val timeStamp: Long,
val event: Event,
val size: Long,
val message: String? = null,
val error: Throwable? = null,
) {
enum class Event {
Closed,
Closing,
Error,
ReceiveMessage,
SendMessage,
Open,
}
}