import io.ktor.server.routing.Route
import io.ktor.server.routing.application
import io.ktor.server.websocket.webSocket
import io.ktor.websocket.Frame
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.delay
import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import java.time.Instant
import kotlin.time.Duration.Companion.microseconds
import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.Duration.Companion.seconds


fun Route.streamingModule() {
    val channel = Channel<Instant>()

    application.launch {
        while (isActive) {
            delay(0.1.seconds)
            channel.send(Instant.now())
        }
    }

    webSocket {
        repeat(3){
            delay(100.milliseconds)
            outgoing.send(Frame.Text(Instant.now().toString()))

        }

//        launch {
//            while (isActive) {
//                outgoing.send(Frame.Text(channel.receive().toString()))
//            }
//        }
    }
}