This wiki is archived from 2021-09-05

Planetary Annihilation Community Chat Implementation

From Planetary Annihilation Titans & Classic PA Wiki

Planetary Annihilation Community Chat Implementation

Planetary Annihilation Community Chat

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

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)