Arduino Candygrabber (4 / 9 steg)
Steg 4: PHP uttaget
Men så fort jag började kodning jag slog ett problem. Saken är den att MAMP använder en speciell portnummer på den lokala datorn i stället för port 80 som vanligt för http-servrar. MAMPS standardporten är 8888 (t.ex. Funkyzeitmac.local:8888) och hamnen i uttaget blir 8890 så när Flash trys för att ansluta till uttaget den alltid ser en crossdomain politik före allt annat. Det är därför det inte fungerade. Så jag gjorde en crossdomain politik och försökte lägga den runt servern men jag hade ingen lycka. Slutligen söka på nätet jag hittade vad som såg ut svaret (och naturligtvis jag hitta inte den på Adobes sidor). Saken är den att när flash ansluter till uttaget, php-koden ska skicka den crosdomain politiken före allt annat. Så sätt göra er crossdomain politik, kopiera den koden och klistra in den i PHP-koden. Efter flash erhåller denna crossdomain politik den arbeten lik en förtrolla.
Du kan hämta filen i slutet av detta steg.
Som du kan se jag använt XML som syntax för meddelanden som skickas till flash. Detta gör det lättare att tolka inkommande data i flash-klienten och AIR app. Det finns några servermeddelanden som skickas när en ny socket är ansluten, när en socket kopplar, att få uttagen räkna och kön för alla klienten uttag. Eftersom detta kommer att vara ett online spel som vi vill ha en timer i flash-klient som kommer att sluta det är tur efter en och en halv minut och gå till slutet av kön. Det är vad är kön för. Spara filen i mappen MAMP där projektet kommer att finnas. För att komma till rotmappen på MAMP servern går till /Applications/MAMP/htdocs skapa en ny mapp och kalla det Candygrabber och spara filen här. Nu öppna en ny Terminal window(/Applications/Utilities/Terminal) och skriv
/ Program/MAMP/bin/php5/bin/php /Applications/MAMP/htdocs/Candygrabber/socketShell.php
och tryck sedan på RETUR. Detta säger php att köra filen som ett serverskript. Om allt gick bra bör du se något sådant i terminalfönstret:
1 uttag bunden till 192.168.1.119:8890
1 lyssna...
Stäng inte fönstret terminal eftersom det kommer att avsluta sessionen och stänga php uttaget.
Nu ska vi gå fram till den flash delen.