AdamChlupacek on upgrade-to-fs2.3
Address review comments, remove… (compare)
AdamChlupacek on upgrade-to-fs2.3
Fix travis dependencies. (compare)
AdamChlupacek on 0.5
Fix travis dependencies. (compare)
AdamChlupacek on upgrade-to-fs2.3
Setting version to 0.4.0-SNAPSH… Updated to fs2 1.0.0 final Fixes #29 and 16 more (compare)
AdamChlupacek on 0.5
Merge branch 'series/0.4' of gi… (compare)
AdamChlupacek on upgrade-to-fs2.3
Migrate fs2-http to fs2 2.3.0 +… (compare)
publishLocal
it for 2.13
submitToQueueViaWebSocket
below) and publishes those events to subscribers via WebSocket. I'm trying to create an integration test for this.
def createWebSocketStream: Stream[F, Unit] = ???
def submitToQueueViaWebSocket: F[Unit] = ???
def createShareAndQueue: F[String] = ???
def wscon(h: String, id: String) = for {
q <- Stream.eval(Queue.unbounded[F, String])
r <- Stream(q.dequeue.concurrently(createWebSocketStream))
} yield r
(for {
id <- Stream.eval(createShareAndQueue)
res0 <- wscon("localhost", id)
_ <- Stream.eval(submitToQueueViaWebSocket)
} yield res0).take(1).compile.toList
submitToQueueViaWebSocket
submits data that will end up in the queue which results in the q.dequeue
stream emitting an item, which in turn results in submitToQueueViaWebSocket
getting invoked turning it into an endless recursion. This seems to be ok as long as I only take a fixed amount of items from the stream. I've also tried changing wscon
to return a Stream[F, Stream[F, String]]
, but in that case the program doesn't terminate. Another approach I've tried is change wscon
to return a Stream[F, Stream[F, String]
instead of a Stream[F, String]
. This would help with the recursion, but for some reason I the initial item from the queue doesn't seems to get published via WS. The latter somehow feels like the better approach, but I can't figure out why the initial item doesn't get published.