parent
5ac864f15e
commit
f3e51a4750
|
@ -26,7 +26,7 @@ object MyHttpService {
|
||||||
val send: Stream[IO, WebSocketFrame] =
|
val send: Stream[IO, WebSocketFrame] =
|
||||||
Stream
|
Stream
|
||||||
.emits(TestModels.testChangesList)
|
.emits(TestModels.testChangesList)
|
||||||
.covary[IO].metered(5.second).map(state => WebSocketFrame.Text(state.asJson.noSpaces))
|
.covary[IO].metered(2.second).map(state => WebSocketFrame.Text(state.asJson.noSpaces))
|
||||||
|
|
||||||
val receive: Pipe[IO, WebSocketFrame, Unit] = _.evalMap {
|
val receive: Pipe[IO, WebSocketFrame, Unit] = _.evalMap {
|
||||||
case WebSocketFrame.Text(text, _) => Sync[IO].delay(println(text))
|
case WebSocketFrame.Text(text, _) => Sync[IO].delay(println(text))
|
||||||
|
|
|
@ -30,9 +30,7 @@ object Main {
|
||||||
import io.laminext.websocket.circe.WebSocket._
|
import io.laminext.websocket.circe.WebSocket._
|
||||||
import io.laminext.websocket.circe.webSocketReceiveBuilderSyntax
|
import io.laminext.websocket.circe.webSocketReceiveBuilderSyntax
|
||||||
|
|
||||||
val roomStateWSStream = io.laminext.websocket.circe.WebSocket
|
val roomStateWSStream = io.laminext.websocket.WebSocket.path("/api/subscribe").json[RoomStateView, Unit]
|
||||||
.url("ws://0.0.0.0:5153/api/subscribe")
|
|
||||||
.json[RoomStateView, Unit]
|
|
||||||
.build(
|
.build(
|
||||||
managed = true,
|
managed = true,
|
||||||
autoReconnect = false,
|
autoReconnect = false,
|
||||||
|
@ -44,7 +42,7 @@ object Main {
|
||||||
val stateStream = roomStateWSStream.received
|
val stateStream = roomStateWSStream.received
|
||||||
// and what's the difference between EventStream and Signal???
|
// and what's the difference between EventStream and Signal???
|
||||||
val stateSignal =
|
val stateSignal =
|
||||||
stateStream.startWith(TestModels.testRoom, cacheInitialValue = true)
|
stateStream.startWith(RoomStateView.empty)
|
||||||
|
|
||||||
// NOTE let's try with fetch \ rest
|
// NOTE let's try with fetch \ rest
|
||||||
// import io.laminext.fetch.Fetch
|
// import io.laminext.fetch.Fetch
|
||||||
|
@ -72,7 +70,7 @@ object Main {
|
||||||
className := "h-24 w-full flex flex-for justify-center items-center bg-green-200",
|
className := "h-24 w-full flex flex-for justify-center items-center bg-green-200",
|
||||||
p(className := "text-2xl", "Here be header")
|
p(className := "text-2xl", "Here be header")
|
||||||
),
|
),
|
||||||
RoomView.renderRoom(staticStateSignal),
|
RoomView.renderRoom(stateSignal),
|
||||||
roomStateWSStream.connect
|
roomStateWSStream.connect
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue