Oregano is a socket server for flash made in JAVA. This server is available for a while but I’ve wanted to promote it a bit as I think it worth it. It’s Open Source, Free, and it seems powerful. First the API was in AS1, but Eric Priou wrote the AS2 one.
You can download it here
Here is a quote of the documentation introduction:
“Oregano Server is a Multiuser Server for Flash clients. It is free and released as Open Source under the GNU Lesser General Public License (LGPL). Since it is written in pure Java it runs on many operating systems including Linux, Windows or Mac OS X. It is useful for client-server applications that require low latency such as real-time chat systems or shared whiteboard applications that would be difficult to develop with traditional HTTP-based solutions.
Groups and User Management
Oregano Server comes with database driven user management and a versatile mechanism for creating and configuring groups. All the interaction takes place in groups. You can create an unlimited number of groups and extend their built-in functionality with
server extensions written in Java. Built-in features include messaging or synchronization of the properties of all members of a group. Simple multiuser applications like chat systems can be written with a few lines of ActionScript and without the need to develop server-side extensions.
Real-time Messaging and Serialization
Easily exchange data between clients or push data from the server to the client. Or use persistent messages, so that a user, who is currently offline, receives the message the next time she logs in. The content of messages is not restricted to strings, you can exchange many different ActionScript datatypes and objects, including Date, Array or the generic Object, which will be serialized and converted to their corresponding Java datatypes automatically. No more cumbersome and error-prone parsing of strings.
Properties associated with a user or a group can be modified and synchronized easily with client-side or server-side methods. Synchronization and persistence settings can be configured separately for each property associated with a group or a user. A property can be configured to be synchronized with every client, to be loaded into the server-side cache only or to be read from the database each time it is accessed. Furthermore it can be configured to be persistent or transient. All the typical requirements for synchronization and persistence will be handled automatically, so you can concentrate on the application logic.
Oregano Server uses JDBC for database access, so every database that comes with a JDBC driver can be integrated. All SQL statements the server uses are included in an external XML configuration file, so you can easily make adjustments if you want to use proprietary syntax of the database you use. In addition you can create your own tables and custom SQL statements. Simply include them in the XML configuration file and use them from within the ActionScript database objects of the Oregano Client without writing a single line of server-side code!
Logging and Statistics
The server comes with an extensive logging system, which is divided into several categories whose log-level can be adjusted separately in the configuration file. Statistical recordings include the number of logins per day, the maximum number of concurrent
connections per day and the average login time per user per day.
When the server load gets too high you can distribute Oregano Server to more than one machine. An unlimited number of secondary servers can be integrated. Adding a few lines to configuration files is all you have to do to build a cluster.
You can easily extend Oregano Server through the built-in extension interface. You can extend the functionality of a single group or all the groups in the server, and you can write custom code to be executed before a user is logged in, so you are able to authenticate her with legacy systems. The extensions are plain Java classes that implement one of the five interfaces that serve as a hook into the server.
Oregano Server comes with a 150-page user manual. It contains a description of each method of the Client API and Server API, and each attribute of each node of the XML configuration files, as well as example code for a simple chat application that you can
use as a starting point for your own application.”