A simple chat app that uses a pekko-http backend and a scala.js frontend to implement a simple websocket based chat application.
To run:
sbt
> project backend
> reStart
Navigate to http://localhost:8080/.
You can build a fully self-contained jar using assembly
in the backend project.
You can set app.interface
and app.port
in application.conf
to configure where the server
should listen to.
This also works on the command line using JVM properties, e.g. using re-start
:
> re-start --- -Dapp.interface=0.0.0.0 -Dapp.port=8080
will start the server listening on all interfaces.
The cli
project contains a command line client for the chat to demonstrate the Websocket client and
how to deal with console input in a streaming way.
It runs best directly from a terminal.
Start the server as explained above. Then, to build a fat jar use
sbt
> project cli
> assembly
Run
java -jar cli/target/cli.jar
or
./chat
Here's another screencast that shows live tab completion in action:
There isn't more than absolutely necessary there right now.