SFUG: Adobe Flash Musikstar Messenger

514 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

SFUG: Adobe Flash Musikstar Messenger

  1. 1. INTERACTIVE MEDIA & MOTION GRAPHICS GMBHADOBE FLASHMusikStar MessengerSwiss Flash User Group, 10. OpenMeeting28. Februar 2007 - ZürichAndreas A. Lorenzwww.dctrl.com, al@dctrl.com
  2. 2. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER Übersicht 01. Aufgabenstellung 02. XMLSocket 03. MultiUser-Server 04. MusikStar MessengerAndreas A. Lorenz - Version 1.0 - Februar 2007 2 / 20
  3. 3. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 01. Aufgabenstellung MusikStar Messenger • Realisierung in 10 Arbeitstagen • Design, Konzept, Programmierung • Integration in bestehende Applikation • Apache-Server, PHP, mySQL • Erhöhte Security & BesucherzahlAndreas A. Lorenz - Version 1.0 - Februar 2007 3 / 20
  4. 4. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket Übersicht • XMLSocket seit Flash 5.0 • RealTime DataExchange • Austausch von XML-Daten zw. Client & Server (Port) • Anfänglich viele Multiuser-OpenSource-Projekte • XMLSocket-Server in Java, Perl, Python, C++ etc. • Einfache Lösungen über PHP/Flash möglichAndreas A. Lorenz - Version 1.0 - Februar 2007 4 / 20
  5. 5. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocketAndreas A. Lorenz - Version 1.0 - Februar 2007 5 / 20
  6. 6. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket AS-Methoden connect(host, port) Baut Verbindung zu definiertem Host über genannten Port auf. send(xmlObj) Sendet XML Object an den Server. close() Beendet die Verbindung.Andreas A. Lorenz - Version 1.0 - Februar 2007 6 / 20
  7. 7. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket AS-EventHandler onConnect() EventHandler bei Verbindungsaufbau. Gibt einen Boolean Wert zurück. onData() EventHandler welcher onXML aufruft sobald neue Serverdaten da sind. onXML() EventHandler bei "Ankunft" eines neuen XMLObject auf Seiten des Client. onClose() EventHandler sobald der Server (aus was für Gründen auch immer) die Verbindung beendet.Andreas A. Lorenz - Version 1.0 - Februar 2007 7 / 20
  8. 8. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket Bsp.: Flash 1/2 mySocket = new XMLSocket(); mySocket.onConnect = function(success) { if (success) { msgArea.text += "Server connection established!"; }else { msgArea.text += "Server connection failed!"; } }; mySocket.onClose = function() { msgArea.text += "Server connection lost"; };Andreas A. Lorenz - Version 1.0 - Februar 2007 8 / 20
  9. 9. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket Bsp.: Flash 2/2 mySocket.prototype.onData = function(msg) { msgArea.text += msg; }; mySocket.connect("dyn.domain.com", 9999); function msgGO() { if (inputMsg.text != "") { mySocket.send(inputMsg.text+"n"); inputMsg.text = ""; } } pushMsg.onRelease = function() {msgGO();}Andreas A. Lorenz - Version 1.0 - Februar 2007 9 / 20
  10. 10. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket Bsp.: PHP 1/5 #!/usr/bin/php -q <?php error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush(); $address = 192.168.0.16; $port = 9999; // Function to Send out Messages to Everyone Connected function send_Message($allclient, $socket, $buf) { foreach($allclient as $client) { socket_write($client, "$socket wrote: $buf"); } }Andreas A. Lorenz - Version 1.0 - Februar 2007 10 / 20
  11. 11. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket Bsp.: PHP 2/5 // Start Socket creation for PHP 5 Socket Server if (($master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { echo "socket_create() failed, reason: " . socket_strerror($master) . "n"; } socket_set_option($master, SOL_SOCKET,SO_REUSEADDR, 1); if (($ret = socket_bind($master, $address, $port)) < 0) { echo "socket_bind() failed, reason: " . socket_strerror($ret) . "n"; }Andreas A. Lorenz - Version 1.0 - Februar 2007 11 / 20
  12. 12. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket Bsp.: PHP 3/5 if (($ret = socket_listen($master, 5)) < 0) { echo "socket_listen() failed, reason: " . socket_strerror($ret) . "n"; } $read_sockets = array($master); // Create Persistent Loop to continuously // handle incoming socket messages while (true) { $changed_sockets = $read_sockets; $num_changed_sockets = socket_select($changed_sockets, $write = NULL, $except = NULL, NULL); foreach($changed_sockets as $socket) {Andreas A. Lorenz - Version 1.0 - Februar 2007 12 / 20
  13. 13. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket Bsp.: PHP 4/5 if ($socket == $master) { if (($client = socket_accept($master)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "n"; continue; }else { array_push($read_sockets, $client); } }else { $bytes = socket_recv($socket, $buffer, 2048, 0); if ($bytes == 0) { $index = array_search($socket, $read_sockets); unset($read_sockets[$index]); socket_close($socket);Andreas A. Lorenz - Version 1.0 - Februar 2007 13 / 20
  14. 14. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 02. XMLSocket Bsp.: PHP 5/5 }else { $allclients = $read_sockets; array_shift($allclients); send_Message($allclients, $socket, $buffer); } } } } ?>Andreas A. Lorenz - Version 1.0 - Februar 2007 14 / 20
  15. 15. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 03. MultiUser Server Übersicht 1/2 • SUSHI (http://www.rawfish-software.com/) • Oregano (http://www.oregano-server.org/) • SmartFoxServer (http://www.smartfoxserver.com/) • Heliant (http://www.heliant.net/) • FlashChat (http://www.tufat.com) • Unity2 (http://moock.org/unity/) • FlashNow (http://www.nowcentral.com/ • Swocket (http://swocket.sourceforge.net/)Andreas A. Lorenz - Version 1.0 - Februar 2007 15 / 20
  16. 16. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 03. MultiUser Server Übersicht 2/2 • ElectroServer (http://www.electro-server.com/) • Jabber (http://www.jabber.org) • Palabre (http://palabre.gavroche.net/) • Net_Server (http://pear.php.net/package/Net_Server)Andreas A. Lorenz - Version 1.0 - Februar 2007 16 / 20
  17. 17. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 04. Lösung Fake Flash/PHP Messenger securityCheck() Nick, PWD, ID, Mail, URL; updateTimer() getFriends(); getMessages(); getFriends() true (fiendsArray), false (noFriends); getMessages() true (messagesArray), false (noMessages);Andreas A. Lorenz - Version 1.0 - Februar 2007 17 / 20
  18. 18. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 04. Lösung Fake Flash/PHP Messenger showFriends() true (fiendsArray), false (nofriends); inviteFriend() true (sendMail), false (registered || already invited); deleteFriend() true (delete), false (nofriend);Andreas A. Lorenz - Version 1.0 - Februar 2007 18 / 20
  19. 19. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER 04. Lösung Fake Flash/PHP Messenger showMessages() true (messagesArray), false (noMessages); readMessage() true (messagesArray), false (noMessages); sendMessage() invitation (mail -> register), answer || new -> (db); deleteMessage() true (fiendsArray);Andreas A. Lorenz - Version 1.0 - Februar 2007 19 / 20
  20. 20. INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER Thanks!! Bei Fragen, Problemen oder Feedback: • dCTRL - INTERACTIVE MEDIA & MOTION GRAPHICS GMBH Andreas Lorenz, Konradstrasse 17, 8005 Zürich, 044-271.9828 al@dctrl.com, www.dctrl.com (Website), www.dctrl.com/flashot (Blog)Andreas A. Lorenz - Version 1.0 - Februar 2007 20 / 20

×