On Mon, 27 Oct 2008, Jason Dorje Short wrote:
> Can you elaborate more on the freeciv-web application?  What's the
> difference between that and gui-web?
> -jason

There is one civclient process for each player, while there only
one Freeciv-web webapp instance at one webserver. So each end-user
starts up a HTTP session using their web browser, which communicates
with their own civclient process (compiled with gui-web), using the
Freeciv-web webapp as a proxy. The data is transfered using compressed 
and diffed JSON between the civclient process and the javascript code in 
the web browser.

  [Browser] <-> [Varnish] <-> [Freeciv-web] <-> [civclient] <-> [civserver]

Freeciv-web is a Java web application which serves these functions:
- Serve HTML, images, javascript and other website content from the
   server to the clients.
- Proxy HTTP connections from the web browser of the users to
   the civclient processes.
- Compress HTTP traffic.
- Launches civclient processes for the end-users for each new game.
- Reduces the size of server packets to the clients, by sending only
   changes (diff's) to the clients. See the DeltaFilter class.

gui-web is a client for the Freeciv server (civserver) and a HTTP server, 
which communicates with the end-users web browsers through a HTTP proxy: 
Therefore gui-web mostly responds to HTTP requests from clients and builds 
JSON responses which the javascript in the browser understands.

There is also a web cache (varnish) in between the web browser and Resin 
HTTP server, to reduce the load on the HTTP server.

  - Andreas

Freeciv-dev mailing list

Reply via email to