SFUG: Adobe Flash Musikstar Messenger

20
Andreas A. Lorenz www.dctrl.com, [email protected] INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MusikStar Messenger Swiss Flash User Group, 10. OpenMeeting 28. Februar 2007 - Zürich

Transcript of SFUG: Adobe Flash Musikstar Messenger

Page 1: SFUG: Adobe Flash Musikstar Messenger

Andreas A. Lorenzwww.dctrl.com, [email protected]

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH

ADOBE FLASH

MusikStar Messenger

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

Page 2: SFUG: Adobe Flash Musikstar Messenger

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

Page 3: SFUG: Adobe Flash Musikstar Messenger

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

Page 4: SFUG: Adobe Flash Musikstar Messenger

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

Page 5: SFUG: Adobe Flash Musikstar Messenger

INTERACTIVE MEDIA & MOTION GRAPHICS GMBH ADOBE FLASH MUSIKSTAR MESSENGER

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

02. XMLSocket

5

Page 6: SFUG: Adobe Flash Musikstar Messenger

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

Page 7: SFUG: Adobe Flash Musikstar Messenger

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

Page 8: SFUG: Adobe Flash Musikstar Messenger

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

Page 9: SFUG: Adobe Flash Musikstar Messenger

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

Page 10: SFUG: Adobe Flash Musikstar Messenger

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

Page 11: SFUG: Adobe Flash Musikstar Messenger

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

Page 12: SFUG: Adobe Flash Musikstar Messenger

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

Page 13: SFUG: Adobe Flash Musikstar Messenger

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

Page 14: SFUG: Adobe Flash Musikstar Messenger

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

Page 15: SFUG: Adobe Flash Musikstar Messenger

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

Page 16: SFUG: Adobe Flash Musikstar Messenger

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

Page 17: SFUG: Adobe Flash Musikstar Messenger

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

Page 18: SFUG: Adobe Flash Musikstar Messenger

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

Page 19: SFUG: Adobe Flash Musikstar Messenger

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

Page 20: SFUG: Adobe Flash Musikstar Messenger

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, [email protected], www.dctrl.com (Website), www.dctrl.com/flashot (Blog)

20