PDA

Prikaži potpunu verziju : Java Client + Web Application (php + mysql)


clzola
6.1.2013, 22:08
Prosto ne znam kako da ukucam na netu, da bih nasao to sto mi treba, tj. tutorial. Naime imam u planu da napravim jednu igricu slicnu TicTacToe igrici (iliti nama dobro poznatu IX/OX xD)

Posto igrica zahtjeva server/client arhitekturu a da pravim java server za desktop racunare i posle da se bijem u glavu zasto ne radi forward port (posto sam imao problema da cas radi, cas ne radi iz nekog meni nepoznatog razloga) ili problemi oko dinamickih ip adresa, pala mi je na pamet ideja da napravim par php skripti koje ce da omogucavaju komunikaciju izmedju klijenata i uostalom vrse kontrolu svake sesije.

Za sad baza podataka bi sadrzala dvije tabele session i player

session:
+ id
+ name
+ password
+ players
+ status
+ currentPlayer
+ table
+ count



player:
+ id
+ letter
+ nickname
+ sessionId
+ wins
+ status


U glavi, a kasnije pomalo i na papiru sam zamislio kako bi sve to izgledalo, jedino imam problem sa time kako da sacuvam socket izmedju klijenta i ovog web servera i kako da vezu odzavam zivom. To jeste u klijentu cu da imam klasu Listener koja ce da nasledjuje Thread klasu i osluskivace taj soket, dok sam slanje poruke zamislio na sledeci nacin pomocu GET php niza:

www.nekaadresa.domen/odgovarajucaskripta.php?var1=blabla&var2=njanja


Ova skripta ce pored toga sto prima poruku od klijenta, morati da tu poruku i obradi a zatim tu novu informaciju dobijenu obradom posalje svim ostalim klijentima u sesiji (maksimalno 4 klijenta).

I bilo bi super kada bi neko imao neki tutorial da mi da da procitam, ili da me usmjeri u pravu stranu.

PeTkO
6.1.2013, 23:45
Pa gledaj...Preko PHP-a je nemoguce da "oslukujes", tj. moguce je ali ces morati da tu stranicu osvezavas svake sekunde (ili manje) sto je ogromno opterecenje za server. Jedino sto mi pada na pamet je preko javascripta, mada ne znam koliko je to izvodljivo, a da opet da sto manje opterecuje server.
Moj savet ti je da probas Player.IO...To ti je vec odradjen server<->client API, jes' mozda malo komplikovan u pocetku, ali mislim da mozes da se naviknes.

P.S. A zasto ne probas da JAVA server hostujes negde pa da preko njega sve probleme sa port forwardingom i dinamickim IP adresama? Ili ako bas imas mnogo para, kupi kod provajdera staticku IP adresu i forwarduj jedan port za server :)

clzola
7.1.2013, 0:36
Razmisljao sam za Java server, ali nisam nigdje nasao server na kome bi taj server radio, to jeste na kome da pokrenem kod :/
Vidim sad malo da sam ga zakomplikovao sa ovim PHP-om :D
A sad cu malo da pogledam ovaj Player.IO

Andross
7.1.2013, 0:53
Pokreni i server i klijent na svojoj masini, pa se preko klijenta konektuj na 128.0.0.1 (ili 192.168.1.x)

clzola
7.1.2013, 1:06
U redu je kad je na mojoj masini, i da se neko konektuje preko LAN-a, ali imam u planu da to razvijem na mnogo vecem nivou, da to ne bude server samo za jednu sesiju (partiju) nego da to kasnije razvijem da moze vise sesija istovremeno, pa da ubacim jos par stvarcica i slicno, pa ne bih da bude hostovano na mojoj masini ...

PeTkO
7.1.2013, 2:36
To ti je sve reseno u Player.IO...Imas API za skoro sve popularne jezike, server se pise u C#, ali posto znas Javu, mislim da ti to nece biti problem. Inace taj problem sa "sesijama" je u Player.IO-u resen sa tzv. "sobama", gde igraci kada se loguju se smestaju u jednu "veliku" sobu, odakle matchmaker odreduje po nekim kriterijuma dva igraca i smesta ih u mec sobu itd. Prostudiraj, imas na netu i alternative za Player.IO, uglavnom, mislim da ti je mnogo teze da radis sve sam od nule.