/geoSocket

Geographically aware socket channels.

Primary LanguageJavaScript

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
  • 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