Hi!

I've got code like this:

>     val flow = Http().webSocketClientFlow(WebSocketRequest(s"ws://...")))
>     val sink = Sink.actorRef(actor, EventsComplete)
>     Source.tick[Message](KeepAliveDelay, KeepAliveDelay, 
> KeepAlive).via(flow).runWith(sink)


The Source.tick is there because if I use Source.empty, the websocket 
connection gets closed immediately. The docs suggest using Source.maybe 
instead, 
but then the websocket is still closed after some timeout. I need my client 
to listen forever.

Anyway: if actor finishes (e.g., server requests a hangup and it gets an 
EventsComplete), the websocket does not close. The ticking keeps going, 
sending stuff over the wire.

This is strange because the docs say it doesn't support half-closed 
websockets[1]. Any guesses what's going on, and what I should do about it? 
In my actual code, one method generates the Source, and another piece of 
code creates the Actor and runs with that Source.

For now I've got a nasty (though fun to code!) workaround, with a custom 
TerminationWatcherKillSwitch thing so that Flow.fromSinkAndSource will 
terminate one stream if the other terminates.

Thanks!

[1] 
http://doc.akka.io/docs/akka/2.4.8/scala/http/client-side/websocket-support.html

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to