mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-05 12:21:02 +01:00
84731e8f00
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
86 lines
2.8 KiB
ActionScript
86 lines
2.8 KiB
ActionScript
/*
|
|
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
|
|
The contents of this file are subject to the Mozilla Public License Version
|
|
1.1 (the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
http://www.mozilla.org/MPL/
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
for the specific language governing rights and limitations under the
|
|
License.
|
|
|
|
The Original Code is [maashaack framework].
|
|
|
|
The Initial Developers of the Original Code are
|
|
Zwetan Kjukov <zwetan@gmail.com> and Marc Alcaraz <ekameleon@gmail.com>.
|
|
Portions created by the Initial Developers are Copyright (C) 2006-2011
|
|
the Initial Developers. All Rights Reserved.
|
|
|
|
Contributor(s):
|
|
|
|
Alternatively, the contents of this file may be used under the terms of
|
|
either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
in which case the provisions of the GPL or the LGPL are applicable instead
|
|
of those above. If you wish to allow use of your version of this file only
|
|
under the terms of either the GPL or the LGPL, and not to allow others to
|
|
use your version of this file under the terms of the MPL, indicate your
|
|
decision by deleting the provisions above and replace them with the notice
|
|
and other provisions required by the LGPL or the GPL. If you do not delete
|
|
the provisions above, a recipient may use your version of this file under
|
|
the terms of any one of the MPL, the GPL or the LGPL.
|
|
*/
|
|
|
|
package system
|
|
{
|
|
|
|
/**
|
|
* Defines what a Serializer have to implements to be integrated in the framework.
|
|
* <p><b>Note :</b> Every serializers (eden, json, wddx, etc.) should implement it.</p>
|
|
*/
|
|
public interface Serializer
|
|
{
|
|
/**
|
|
* The prettyIndent value of the serializer.
|
|
*/
|
|
function get prettyIndent():int;
|
|
|
|
/**
|
|
* @private
|
|
*/
|
|
function set prettyIndent( value:int ):void;
|
|
|
|
/**
|
|
* The prettyPrinting value of the serializer.
|
|
*/
|
|
function get prettyPrinting():Boolean;
|
|
|
|
/**
|
|
* @private
|
|
*/
|
|
function set prettyPrinting( value:Boolean ):void;
|
|
|
|
/**
|
|
* The identor String value of the serializer.
|
|
*/
|
|
function get indentor():String;
|
|
|
|
/**
|
|
* @private
|
|
*/
|
|
function set indentor( value:String ):void;
|
|
|
|
/**
|
|
* Deserialize the specified String source representation.
|
|
*/
|
|
function deserialize( source:String ):*;
|
|
|
|
/**
|
|
* Serialize the specified object.
|
|
*/
|
|
function serialize( value:* ):String;
|
|
}
|
|
}
|
|
|