Chapter 11. A Real-Time Client
In the last chapter, we implemented our first application using functional reactive programming; we decided to implement a real-time web chat using WebSockets because of its inherit nature of interactivity, making it a perfect candidate for functional reactive programming.
We decided to use RxJS in all levels of the application; we used it to:
- Model servers and incoming WebSocket connections
- Implement the business rule for some services
- Implement the DataSource of our application
- Implement the tests of our application
In our server implementation, we had the opportunity to implement observables from different sources and even implement a subject to push data.
From the tests perspective, we decided to implement some basic tests only for our services; we did not want to have full coverage of our code, but the constructs and architecture of these tests can be easily replicated to create more tests for our services or even to implement new tests for the other layers of...