SFUG: Adobe Flash Musikstar Messenger

Post on 09-May-2015

297 views 0 download

Transcript of SFUG: Adobe Flash Musikstar Messenger

Andreas A. Lorenzwww.dctrl.com, al@dctrl.com

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH

ADOBE FLASH

MusikStar Messenger

Swiss Flash User Group, 10. OpenMeeting28. Februar 2007 - Zürich

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

Übersicht01. Aufgabenstellung02. XMLSocket03. MultiUser-Server04. MusikStar Messenger

2

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

01. AufgabenstellungMusikStar Messenger• Realisierung in 10 Arbeitstagen• Design, Konzept, Programmierung• Integration in bestehende Applikation• Apache-Server, PHP, mySQL• Erhöhte Security & Besucherzahl

3

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

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öglich

4

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocket

5

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketAS-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.

6

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketAS-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.

7

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketBsp.: 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";};

8

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketBsp.: 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();}

9

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketBsp.: 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 Connectedfunction send_Message($allclient, $socket, $buf) { foreach($allclient as $client) { socket_write($client, "$socket wrote: $buf"); }}

10

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketBsp.: PHP 2/5

// Start Socket creation for PHP 5 Socket Serverif (($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";}

11

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketBsp.: 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 messageswhile (true) { $changed_sockets = $read_sockets; $num_changed_sockets = socket_select($changed_sockets, $write = NULL, $except = NULL, NULL); foreach($changed_sockets as $socket) {

12

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketBsp.: 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);

13

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

02. XMLSocketBsp.: PHP 5/5

}else { $allclients = $read_sockets; array_shift($allclients); send_Message($allclients, $socket, $buffer); } } }}?>

14

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

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/)

15

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

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)

16

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

04. LösungFake Flash/PHP Messenger

securityCheck()Nick, PWD, ID, Mail, URL;

updateTimer()getFriends(); getMessages();

getFriends()true (fiendsArray), false (noFriends);

getMessages()true (messagesArray), false (noMessages);

17

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

04. LösungFake Flash/PHP Messenger

showFriends()true (fiendsArray), false (nofriends);

inviteFriend()true (sendMail), false (registered || already invited);

deleteFriend()true (delete), false (nofriend);

18

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

04. LösungFake Flash/PHP Messenger

showMessages()true (messagesArray), false (noMessages);

readMessage()true (messagesArray), false (noMessages);

sendMessage()invitation (mail -> register), answer || new -> (db);

deleteMessage()true (fiendsArray);

19

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

Andreas A. Lorenz - Version 1.0 - Februar 2007 / 20

Thanks!!Bei Fragen, Problemen oder Feedback:

• dCTRL - INTERACTIVE MEDIA & MOTION GRAPHICS GMBHAndreas Lorenz, Konradstrasse 17, 8005 Zürich, 044-271.9828al@dctrl.com, www.dctrl.com (Website), www.dctrl.com/flashot (Blog)

20