Actionserver

A light-weight C Socket Server which acts as the networking glue for multi-user & hybrid technology applications.

View the Project on GitHub sekati/actionserver

Sekati ActionServer

Description

Sekati ActionServer is a light-weight, C based, TCP/IP Echo Socket Server. It functions as the networking glue for any real-time multi-user or hybrid technology application.

The daemonized server opens TCP port 2229 for incoming connections, awaits a channel join command (this allows for a single server instance to host many different applications without message overflow), then broadcasts any messages received from clients to all other connected clients in real-time.

The Sekati ActionServer has been successfully deployed in many different use-cases such as:

Server Details

In addition to the primary actionserver daemon & actionserverctl control script - a second daemon socketpolicyserver is shipped/installed to support flash & air applications which require a special crossdomain XML policy be served on a specific socket.

The following is key usage information to know about the actionserver & socketpolicyserver daemons:

ActionServer Daemon (defaults may be changed in actionserver.c)

SocketPolicyServer Daemon

Installation

  1. Unarchive & in your terminal change to the actionserver directory: cd /path/to/actionserver/
  2. Compile the ActionServer for your environment: make
  3. Install the ActionServer binaries: make install (you will be prompted for your root password for installation).
  4. Run the control script (see Packaging List section below for more details): actionserverctl start
    • This will daemonize the actionserver & socketpolicyserver making them ready for use.
  5. To check the status of the servers type: actionserverctl status
  6. To follow the log files for the servers type: actionscriptctl log
  7. To stop the servers type: actionscriptctl stop

If you run in to trouble while compiling or installing the binaries you may run make uninstall to start over or type make help for more information.

Build Requirements

Runtime Requirements

The ActionServer is an extremely light-weight & low requirement application meant to run on nearly any operating system:

Packaging List

Changelog

8/28/11 - *v1.1.0
    - Added a proper Makefile
    - Repackaged for Github release.
    - Revises `actionscriptctl` control script
    - Revised build.sh compilation script
    - Revised channel password
    - Added detailed README instructions (this document)
    - added includes to string.h & stdlib.h to surpress gcc warnings

2/8/10 - *v1.0.9*
    - Added proper LICENSE.txt
    - added socketpolicyserver.pl & integrated actionserverctl script
    - pointed logging facility to /tmp/actionserver.log
    - updated actionserverctl
    - created new binary build
    - updated actionscript examples.

1/18/10 - *v.1.0.8*
    - Changed message buffer to 8192 (8k) from 2048 (2k)
    - Changed max users to 500 (from 100)

License

Copyright © 2011 Jason M Horwitz / Sekati LLC & Marcus Stoeger. All Rights Reserved.

Released under the MIT License: http://www.opensource.org/licenses/mit-license.php

The MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 
associated documentation files (the “Software”), to deal in the Software without restriction, 
including without limitation the rights to use, copy, modify, merge, publish, distribute, 
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or 
substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.