Simple message based communication between Flash and openFrameworks
README
INTRO
The ofxFlashCommunication addon aims to create a simple and straightforward way to communicate between Flash and openFrameworks. This addon started with ofxFlashCommunication which communicates over a socket and uses simple string messages to send data from client<-->server.Recently I add ofxAMFserver, a more robust, easier and faster solution to do remoting.
ofxFlashCommunication
Allows you to create a flash server to which you can connect using a Flash socket. Can handle large amounts of clients (using Poco::Net::* for scalable networking.Install & setup
- Just drag and drop the source files into your project
- Add ofxFlashCommuncation.h to your testApp.h
- Create a member "ofxFlashCommunication flash" in testApp
- in testApp::setup(), call: flash.setup(...); flash.addPolicy(...); and flash.start();
- to receive messages from flash use: flash.hasMessage(), flash.getNextMessage()
- to send messages to flash use: flash.send("some message as string")
Include directories for Code::Blocks (windows)
- when ofxFlashCommunication is in of/addons/ofxFlashCommunication, add this:
- or when you have it in addons_roxlu or addons_diederick (as how I store them)
ofxAMFServer
ofxAMFServer is a AMF implementation for openFrameworks. You can use the default netconnection to make remote calls on a ofxAMFServer. This part of the addon will probably be the successor of ofxFlashCommunication (though this is still very well usable for simple message events).ofxAMFServer works for most basic AMF3/0 object types; Implementating object references is on the todo list.
To use the amf server, create a ofxAMFServer member in your testApp and start it like this:
<example>
// Create a amf server. amf_server.setup("localhost", 1234); amf_server.start(); amf_server.addListener(this, &testApp::onAMFevent);
</example>
In this example onAMFEvent, which has this definition in testApp.h: void onAMFevent(ofxAMFEvent& ev), will be called when a new AMF request is received. Use ev.getTargetURI() to get the "method" you should call. This targeturi is, for example "MyClass.SomeMethod". To pass values back set the return values on the event object: ev.setReturnValues(dict). You pass a Dictionary object to it. See the ofxMissing addon for this Dictionary type.
ofxAddons