Implementing the server side
At the server level, we need to open a communication channel between the server and the browser; once the communication is open, we need to implement the message reception and broadcast it to all of the connected browsers using Actors.
Creating the web socket route
To create the route, the conf/routes file needs to be modified by adding the following:
GET /v1/cart/events controllers.WebSockets.cartEventWS
Notice that the route is defined in the same way as a regular web service call; so, the GET call on /v1/cart/events is routed to the cartEventWS method of thecontrollers.WebSockets instance.
Next, we need to create the WebSockets class in the controllers package of the server module, and add the cartEventsWS method, as follows:
@Singleton
class WebSockets @Inject()(
implicit actorSystem: ActorSystem,
materializer: Materializer,
cc: ControllerComponents) extends AbstractController(cc) {
def cartEventWS = WebSocket.accept[String, String] {
implicit request...