I had taken code from the Akka Documentation about handling WebSocket 
connections server-side with Akka Streams; 
and was able to take the essentials of that to connect to a simple 
Javascript Client to send data to the Server, augment it on Server, then 
echo it back to the Client.

However, I still had the following specific questions about parts of that 
code (see TODO comments 4, 5, 6); THANKS in advance for any insight!

// TODO 4:  find out how to choose between  bind, bindAndHandleSync, or 
bindAndHandleAsync for most REACTIVE/RESPONSIVE processing
//          i.e. ALL methods wrap internal AKKA support for TCP backpressure;
//               but Async permits concurrent requests on a single connection 
without waiting for a response first
// TODO 5:  what are the most important failure handling scenarios to handle; 
or can this be handled internally with
//          any specific higher-level API that propagates errors through Try 
collections?
// - Handling HTTP Server failures in the Low-Level API
// 
http://doc.akka.io/docs/akka/2.4.10/scala/http/low-level-server-side-api.html#controlling-server-parallelism
// - routing-level exceptions
// 
http://doc.akka.io/docs/akka/2.4.10/scala/http/routing-dsl/exception-handling.html#exception-handling-scala
val bindingFuture =
  Http().bindAndHandleSync(requestHandler, interface = "localhost", port = 8080)

println(s"Server online at http://localhost:8080/\nPress RETURN to stop...")
Console.readLine()

// TODO 6: Is it good practice to keep WebSocket connection open, monitoring 
for data on either Client or Server side;
//         i.e. is it OK to just wait until Server is shutdown instead of 
explicitly closing Websocket prior to that shutdown?
//         If not, how do you close that WebSocket explicitly, and outside of 
the request handlers?
import system.dispatcher // for the future transformations
bindingFuture
  .flatMap(_.unbind()) // trigger unbinding from the port
  .onComplete(_ => system.terminate()) // and shutdown when done

-- 
>>>>>>>>>>      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