This wiki is archived from 2021-09-05

Planetary Annihilation Community Chat Implementation: Difference between revisions

From Planetary Annihilation: TITANS and Classic PA Wiki
Jump to navigation Jump to search
Line 29: Line 29:


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

Revision as of 04:43, 17 November 2017

File:Titans-icon.png Planetary Annihilation Community Chat Implementation

Planetary Annihilation Community Chat

File: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

File: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)