URL:
<http://gna.org/task/?6460>
Summary: Submission of Ajax Push Engine
Project: Gna! Administration
Submitted by: jchavarria
Submitted on: samedi 31.01.2009 à 22:56
Status: None
Approval Status: None
Should Start On: samedi 31.01.2009 à 00:00
Should be Finished on: mardi 10.02.2009 à 00:00
Category: Project Approval
Priority: 5 - Normal
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
_______________________________________________________
Details:
A new project has been registered at Gna!
This project account will remain inactive until a site admin approves or
discards the registration.
= Registration Administration =
While this item will be useful to track the registration process, *approving
or discarding the registration must be done using the specific Group
Administration <https://gna.org/siteadmin/groupedit.php?group_id=2894> page*,
accessible only to site administrators, effectively *logged as site
administrators* (superuser):
* Group Administration
<https://gna.org/siteadmin/groupedit.php?group_id=2894>
= Registration Details =
* Name: *Ajax Push Engine*
* System Name: *ape*
* Type: Programs
* License: GNU General Public License V2 or later
----
==== Description: ====
APE is a technology allowing to exchange datas between thousands of users,
through a web browser without reloading.
Very lightweight and scalable, APE is a HTTP server that does real time data
streaming. Unlike Comet, APE does not stream data into a frame, thus your
browser will not be flooded with data.
It uses all the lastest browser features and provides backward compatibilty
for older ones. Fully written in C language, it has small footprint and does
not requires any dependencies.
Link to the APE Server 0.6 Source Code :
http://www.ape-project.org/dl.php?file=APE-Server-0.6.0-1.tar.gz
The APE Project is divided in two parts : a Server and a JavaScript
Framework.
The APE Server is fully written in the low-level C language to provide best
performances, for the moment the engine can be installed on Linux 2.6.19+
kernel, and does not requires any dependencies.
APE is a HTTP Streaming server implementing POST and GET methods of the HTTP
protocol, but does not repleace a regular Web Server (such as Apache,
Lighttpd or Nginx). The APE Server is only called when AJAX persistant
requests are made.
The APE Server keeps the connection openned waiting for datas ready to be
sent to a user. Once datas came for a specific user, the server close that
connection (due to the AJAX technology), to be able to read those datas.
Then, the APE server send them to the user while re-opening a new permanent
connection. If datas have come when the connection was close (the duration of
the connexion closing/re-opening is a few milliseconds), those ones are keeped
in queue (placed into RAM), and are sent when the connection is re-openned.
APE has its own session management system, and can handle by himself users
to users messages.
Usually, a web browser can only keep two connections openned at the same time
through a same domain. To solve this problem, the user of a website
implementing the APE Server, is connecting to different hosts of APE, and the
messages sent, are broadcasted to all his clients.
The entry data format for the APE Server is a syntax called "RAW"s, wich are
commands/actions treated in intern by the server. APE provide an easy way to
add new RAWs while written plugins. The APE Server only send JSON datas to
the client.
The APE JavaScript Framework, is the client interface, wich enable to deal
with the data sent by the server. Written in Javascript, the Framework is
based on the Mootools Library. The Client Core handle the basics of sending,
receiving and dealing with the server RAWs.
Modules can be added to the server, currently developped in C language, the
ability to write them in LUA and PHP will be soon implemented.
The JavaScript Framework can be plugged with modules, developped in
Javascript and with the use of the Mootools library, enabling to create UIs
in relation with APE, such as a chat client for example.
==== Other Software Required: ====
Requires Linux 2.6.19+ (epoll support)
_______________________________________________________
Reply to this item at:
<http://gna.org/task/?6460>
_______________________________________________
Message posté via/par Gna!
http://gna.org/
_______________________________________________
Register mailing list
[email protected]
https://mail.gna.org/listinfo/register