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
mNo edit summary
 
Line 1: Line 1:
= [[File:Titans-icon.png|50px]] Planetary Annihilation Community Chat Implementation =
= Planetary Annihilation Community Chat Implementation =


[[Planetary Annihilation Community Chat]]
[[Planetary Annihilation Community Chat]]


== [[File:platinum-rank-icon.png|50px]] Implementation Overview ==
== Implementation Overview ==


Highlights of the implementation are:
Highlights of the implementation are:
Line 26: Line 26:
* game invites
* game invites


== [[File:platinum-rank-icon.png|50px]] Implementation Stack ==
== Implementation Stack ==


* web sockets based on http://socket.io/
* web sockets based on http://socket.io/

Latest revision as of 11:10, 9 September 2021

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)