poniedziałek, 7 stycznia 2008

Klient pocztowy we Flashu

Na forum flashzone.pl prowadziłem dość interesującą rozmowę na temat tego jak w FlashPlayer 9 można obsługiwać klienta poczty. Cały pomysł Mateusza Małczaka polegał na tym żeby napisać jakiś mikro serwer na jakimś porcie który by nadsłuchiwał żądania na danym porcie od FlashPlayera. Teraz sztuka polega na tym że w kodzie Action Script piszemy tak

Security.loadPolicyFile("xmlsocket://serwerpoczty.com:878");
co oznacza na serwerze poczty na porcie 878 jest ten mikroserwer. FlashPlayer zanim nawiąże połączenie pod tym portem wysyła zapytanie do tego mikroserwera
 <policy-file-request />  
i oczekuje że serwer mu odpowie
<cross-domain-policy>
<allow-access-from domain="*" ports="*">
</allow-access-from> </cross-domain-policy>

A ponieważ zapytanie i odpowiedz wyszły z portu mniejszego niż 1024 to w ten sposób Flash Player otrzymał dostęp do wszystkich portów serwera.
Więcej informacji można przeczytać w dokumentacji ActionScript

1 komentarz:

malczak pisze...

drobna uwaga, w zapytaniu ktore flash player wysyla NIE MA spacji przed zamknieciem tag'a.
W dokumentacji do Flash CS3 jest napisane, ze ta spacja tam jest, ale aktualnej pomocy online wyrazne jest zaznaczone, ze nie ma spacji przed zamknieciem.