geoSocket
ToDo server
- Very High
- Force one connection per browser
- Make it per device?
- When about to select a channel, get the number of connected poeple. If there is a channel that is close to the max (defined by the config file), and there is a new client, move some of the biggest channels clients to a new channel
- When a client disconnects, if the channel is bellow a threshhold, send its clients to other channels to populate them
- Force one connection per browser
- High
- Merge state from incoming event, with stored in memory state of a client
- Use Cloudant to save channel and geo query them
- Use Redis to mantain socket state
- Use Redis pub/sub as a broker between instances, so messages are properly replicated
- Make each server responsable for mantaining the state of the channels they create
- In case said server dies, using a hearbeat make other servers take responsability for it
- Bottleneck the updates to redis/cloudant to avoid collisions
- Medium
- Get state of a channel through redis
- Low
- Recieve git pushes, then do a pull, then reload pm2 instance
- Set an interval to store all states in cloudant every X seconds
ToDo pwa
- Very High
- PWA
- Generate ID for the browser
- For the device?
- Optional
- Run it in a WebWorker?
- Get browser fingerprint
- High
- Mobile Friendly
- RTC communication
- Binary compression
- Voice notes
- Photos
- GIF
- Emoji keyboard support
- Medium
- Socket connection in the WebWorker
- Low
- Facebook login, just retrieve photo and name