I'm getting lost in all the options offered on the net and I don't know where to start.
Context : As a learning experience I want to build an online multiplayer card game (think about it as a poker game). People log-in and play together.
Need : Such application requires realtime capability because when a player decided to do something all the players around the table have to be notified of it. My question is about this need and I would like it to be as plug and play as possible.
Stack : I'm using XAML Browser Applications because its the closest to what I know (C#, XAML, MVVM). Database still have to be decided.
The options I have found on the internet for doing so are : - Firebase realtime database: Looks plug and play but also looks expensive. - MongoDB replica change .watch() function: Looks like an option but I'm not interested in learning NoSQL for now. - RethinkgDb: Is an abandoned project. - WebSockets, socket.io, ... : Another set of scripts that could fail. - SignalR : Looks interesting but not sure if it works with XBAP. - Hasura / GraphQL / Postgresql engine: Looks interesting. - ...
How would you do to achieve realtime clients update with the following constraints: easy, free, as live as possible, XBAP compatible,... ?
I will invite you to look at Redis, and its PUB/SUB feature.
It allows you to easily create communication channels and push messages to many subscribers, so a perfect fit for your need; it is very simple to put in place.
You can look at the Pub/Sub documentation.
I am not familiar with XBAP applications, but since it is browser-based, maybe you can use Web sockets to communicate with your server to push and consume messages, you can find a basic example using Javascript here.