Aphlict, simple notification server
Summary:
This is purely a prototype at the moment, but the basic functionality sort of
works.
I'm not sure how far I want to go with this but I think we might be able to get
somewhere without it being gross.
The idea here is to build a notification server WITHOUT using Comet, since Comet
is extremely difficult and complicated.
Instead, I use Flash on the client. LocalConnection allows flash instances to
talk to each other and connect() can be used as a locking primitive. This allows
all the instances to elect a master instance in a race-safe way. The master is
responsible for opening a single connnection to the server.
On the server, I use Node.js since PHP is pretty unsuitable for this task.
See Github Issue #3: https://github.com/facebook/phabricator/issues/3
One thing I need to figure out next is if I can reasonably do SSL/TSL over Flash
(it looks like I can, in theory, with the as3crypto library) or if the server
needs to just send down version information and trigger a separate Ajax call on
the client.
Test Plan:
Created a client pool and connected it to the server, with election and failover
apparently working correctly.
Reviewed By: aran
Reviewers: Girish, aran, jungejason, tuomaspelkonen, davidrecordon
Commenters: Girish, davidrecordon
CC: aran, epriestley, Girish, davidrecordon
Differential Revision: 284
2011-05-15 23:05:02 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
BASEDIR=`dirname $0`
|
|
|
|
ROOT=`cd $BASEDIR/../../../ && pwd`;
|
|
|
|
|
|
|
|
if [ -z "$MXMLC" ]; then
|
|
|
|
echo "ERROR: Define environmental variable MXMLC to point to 'mxmlc' binary.";
|
|
|
|
exit 1;
|
|
|
|
fi;
|
|
|
|
|
|
|
|
set -e
|
|
|
|
set -x
|
|
|
|
|
|
|
|
# cp -R $ROOT/externals/vegas/src $BASEDIR/src/vegas
|
|
|
|
|
|
|
|
(cd $BASEDIR && $MXMLC \
|
|
|
|
-output aphlict.swf \
|
|
|
|
-default-background-color=0x444444 \
|
|
|
|
-default-size=500,500 \
|
|
|
|
-warnings=true \
|
|
|
|
-debug=true \
|
|
|
|
-source-path=$ROOT/externals/vegas/src \
|
|
|
|
-static-link-runtime-shared-libraries=true \
|
|
|
|
src/Aphlict.as)
|
|
|
|
|
|
|
|
mv $BASEDIR/aphlict.swf $ROOT/webroot/rsrc/swf/aphlict.swf
|
2012-03-07 05:14:03 +01:00
|
|
|
|
|
|
|
# -target-player=10.2.0 \
|