Planetary Annihilation Community Chat Implementation

From Planetary Annihilation Titans & Classic PA Wiki
Jump to: navigation, search

Titans-icon.png Planetary Annihilation Community Chat Implementation

Planetary Annihilation Community Chat

Platinum-rank-icon.png Implementation Overview

Highlights of the implementation are:

  • scalable multi-user chat rooms with no preset room limit
  • single web socket connection to Community Chat server based on http://socket.io/
  • connects and reconnects automatically

Changes from previous PA Chat implementation:

  • lightweight messages based on single observable allowing for more room history
  • lightweight room users with single wrapped observable allowing for more room users and faster sorting via unwrapped properties
  • room users no longer create full heavy CONTACT users with many observables ie the user tag map will not grow for every user who joins room


Default uberbar implementation is still long polling XMPP over BOSH to PlayFab servers for the following:

  • friends list presence
  • private chat
  • chat requests
  • friend requests
  • game invites

Platinum-rank-icon.png Implementation Stack

  • web sockets based on http://socket.io/
  • Nginx 1.12.x / http2 (latest)
  • NodeJS 8.x (latest)
  • Percona MongoDB 3.2.x (latest)