1. app.js
// -------------------------------------- // Imports // -------------------------------------- var net = require('net'); var mySocket; // -------------------------------------- // Construct The Socket // -------------------------------------- // create the server and register event listeners var server = net.createServer(function(socket) { mySocket = socket; mySocket.on("connect", onConnect); mySocket.on("data", onData); }); // -------------------------------------- // Events // -------------------------------------- /** * Handles the Event:"connect"
. * */ function onConnect() { console.log("Connected to Flash"); } /** * Handles the Event:"data"
. * * When flash sends us data, this method will handle it * */ function onData(d) { if(d == "exit\0") { console.log("exit"); mySocket.end(); server.close(); } else { console.log("From Flash = " + d); mySocket.write(d, 'utf8'); } } // -------------------------------------- // Start the Socket // -------------------------------------- server.listen(3000, "127.0.0.1");
2. flash (as3)
package { // -------------------------------------- // Imports // -------------------------------------- import flash.display.Sprite; import flash.events.DataEvent; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.KeyboardEvent; import flash.events.MouseEvent; import flash.net.XMLSocket; import flash.text.TextField; import flash.ui.Keyboard; // -------------------------------------- // Class // -------------------------------------- /** *The
* */ public class NodeJSDemo extends Sprite { // -------------------------------------- // Properties // -------------------------------------- // PUBLIC GETTER/SETTERS /** * The core object which connects client to * server for real-time communication */ private var _xmlSocket:XMLSocket; /** * The sole UI element to show some test output */ private var _textField:TextField; // PUBLIC CONST // PRIVATE // -------------------------------------- // Constructor // -------------------------------------- /** * This is the constructor. * */ public function NodeJSDemo() { // SUPER super(); // EVENTS addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage); // VARIABLES // PROPERTIES _textField = new TextField (); _textField.width = 300; _textField.height = 300; _textField.multiline = true; _textField.htmlText = ""; addChild(_textField); // METHODS } // -------------------------------------- // Methods // -------------------------------------- // PUBLIC /** * Handles the Event:NodeJSDemo
class is ...Event.CHANGE
. * * @param aEventEvent
The incoming aEvent payload. * * @return void * */ private function _onAddedToStage(aEvent : Event):void { // CREATE THE SOCKET AND CONNECT - I'M NOT SURE WHAT PARAMETERS ARE VALID HERE // BUT IT MUST MATCH THE SETTINGS WITHIN THE 'HelloWorldNodeJS.js' FILE YOU ARE USING _xmlSocket = new XMLSocket("127.0.0.1", 3000); // EVENTS stage.removeEventListener(MouseEvent.CLICK, _onAddedToStage); // _xmlSocket.addEventListener(Event.CONNECT, _onConnected); _xmlSocket.addEventListener(IOErrorEvent.IO_ERROR, _onIOError); } // PRIVATE // -------------------------------------- // Event Handlers // -------------------------------------- /** * Handles the Event:Event.CHANGE
. * * @param aEventEvent
The incoming aEvent payload. * * @return void * */ private function _onConnected(aEvent : Event):void { // TRACE trace("onConnect() aEvent: " + aEvent); // EVENTS _xmlSocket.removeEventListener(Event.CONNECT, _onConnected); _xmlSocket.removeEventListener(IOErrorEvent.IO_ERROR, _onIOError); // _xmlSocket.addEventListener(DataEvent.DATA, _onDataReceived); _xmlSocket.addEventListener(Event.CLOSE, _onSocketClose); // stage.addEventListener(KeyboardEvent.KEY_UP, _onKeyUp); } /** * Handles the Event:Event.CHANGE
. * * @param aEventEvent
The incoming aEvent payload. * * @return void * */ private function _onSocketClose(aEvent : Event):void { // TRACE trace("_onSocketClose aEvent : " + aEvent); // EVENTS stage.removeEventListener(KeyboardEvent.KEY_UP, _onKeyUp); _xmlSocket.removeEventListener(Event.CLOSE, _onSocketClose); _xmlSocket.removeEventListener(DataEvent.DATA, _onDataReceived); } /** * Handles the Event:KeyboardEvent.KEY_UP
. * * @param aEventKeyboardEvent
The incoming aEvent payload. * * @return void * */ private function _onKeyUp(evt:KeyboardEvent):void { // HANDLE KEYS if (evt.keyCode == Keyboard.ESCAPE) { //1. SEND 'KILL THE SERVER' TO THE SERVER _xmlSocket.send("exit"); } else { //2. SEND ANY NON-ESCAPE KEY'S CODE ('38' FOR EXAMPLE) TO SERVER // THIS IS A SILLY EXAMPLE OF SENDING A NUMBER TO THE SERVER // JUST SO THE SERVER CAN SEND IT BACK. SIMPLE. _xmlSocket.send(evt.keyCode); } } /** * Handles the Event:DataEvent.DATA
. * * @param aEventDataEvent
The incoming aEvent payload. * * @return void * */ private function _onDataReceived(aEvent : DataEvent):void { try { // Show the server data in text _textField.htmlText += ("From Server: " + aEvent.data + "n"); //scroll down to show latest line _textField.scrollV = _textField.maxScrollV; } catch (error : Error) { // TRACE trace("_onDataReceived error: " + error); } } /** * Handles the Event:IOErrorEvent.IO_ERROR
. * * @param aEventIOErrorEvent
The incoming aEvent payload. * * @return void * */ private function _onIOError(aEvent : IOErrorEvent):void { // TRACE trace("_onIOError aEvent: " + aEvent); // EVENTS _xmlSocket.removeEventListener(Event.CONNECT, _onConnected); _xmlSocket.removeEventListener(IOErrorEvent.IO_ERROR, _onIOError); stage.addEventListener(MouseEvent.CLICK, _onAddedToStage); } } }
'프로그래밍 > nodeJS' 카테고리의 다른 글
[nodeJS] Flash + Html5 + Node.js (0) | 2015.01.27 |
---|---|
[nodeJS] Socket.IO 방만들기 (0) | 2015.01.27 |
[nodeJS] Socket.IO 모듈 (0) | 2015.01.27 |
[nodeJS] Express / Routes / Jade 모듈 (0) | 2015.01.27 |
[nodeJS] connect / connect_router 모듈 (0) | 2015.01.27 |