Jeg er startet på et projekt, der handler om at implementere en chat og yderligere spillet memory. Jeg har 2½ uge til at programmere, hvorefter tiden skal bruges på at skrive rapport.
Systemet skal implementeres vha. sockets i java.
Der rejser sig en masse spørgsmål, som jeg ikke selv kan svare på pt., men jeg arbejder på at blive klogere. Jeg håber på - som så mange gange før - at kunne søge gode råd her i takt med projektet udvikler sig, og min viden bliver større.
Programmet skal bygges op med en server, hvortil der bindes flere klienter. Klienterne skal være flade, dvs. logikken skal primært placeres på serveren. Klienterne skal som udgangspunkt være applikationer, altså ikke applets.
Lige nu har jeg følgende spørgsmål:
- Min idé er at alle klienter har et enkelt chat vindue, hvori alle kan chatte med alle. Hvis en delmængde ønsker at starte enten privat chat eller et spil, skal dette vælges i fælleschat vinduet, hvorefter et nyt vindue åbnes for hvert spile eller privat chat.
| - > hvad skal jeg undersøge, for at opnå en løsning, hvor en person kan chatte i en privatchat (dvs. i et vindue), medens fælleschat vinduet stadig opdateres i baggrunden. Jeg gætter på at det har med threads at gøre, men er det overhovedet muligt at løse inden for min tidsramme, eller vil I anbefale en løsning, hvor fælleschat, privatchat og spil foregår i et enkelt stort vindue??
- Til memory spillet skal jeg have vist nogle brikker/kort ude hos klienten. Til at starte med skal spillet håndtere 20 kort. Ideen er at brugeren med sin mus trykker på to kort - et ad gangen - og at der for hvert kort vises et billede ved trykket. | -> Hvordan vil I mene det er mest hensigstmæssigt at implementere dette. Bør man tegne det, og så holde øje med hvor på skærmen brugeren trykker. Vil I i stedet anbefale, at man opretter 20 JButtons, og tilknytter billeder til dem. Helt tredie løsning?! | -> Min umiddelbare tanke er at sende en url til et billede der ligger på serveren. Er denne løsning anbefalelsesværdig, eller bør man sende billederne til klienterne?!
Jeg håber ikke det virker som om, jeg vil have jer til at lave min opgave.....det jeg søger er gode råd til at bevæge mig i den rigtige retning.
Min tanke er at lade denne tråd køre og så stille spørgsmål efterhånden som projektet udvikler sig. Er det en god idé, kan man tillade sig det.
Jeg går udfra at du vil benytte JSP...i så fald er jeg ikke så stærk i dette..men kan måske alligevel lede dig lidt på vej.
-Lad hver med at tænke i thread...det klarer JSP for dig
-Husk at du har et sessionobjekt, der er tilknyttet din bruger. I det kan du sætte en parameter på at du er i i en "privat chat". Og såfremt du vælger at benytte en front controller, kan du lade den undersøge din sessionobjekt. hvorefter den ved hvilken side du skal have vist. DVS at din bruger hele tiden vil få opdateret det "private" chatvindue. mens andre bruger, der er i "normal" chat vil få opdaret denne.
- Jeg synes det vil være fint at tegne dine kort. Når en bruger ønsker at spille et spil så send dem afsted fra serveren med et DTO. Placer dem i en tabel, så hver celle i tabellen indeholder et billede: ex. <table align="center" border="1" cellpadding="2" cellspacing="1"> <tr> <td background="sol.GIF" width="27" height="33" onclick="setValue(1)"></td> <td background="sol.GIF" width="27" height="33" onclick="setValue(2)"></td> <td background="hest.GIF" width="27" height="33" onclick="setValue(3)"></td> .... </tr> <tr> <td background="paraply.GIF" width="27" height="33" onclick="setValue(1)"></td> <td background="hest.GIF" width="27" height="33" onclick="setValue(2)"></td> .... </table>
onclick="setValue(2)" delen i sætningerne kalder en Javascript funktion hvori du evt kan lægge logikken hvor at få vendt billedet...om de to vendte billeder er ens...osv
Ja, ok.... havde ikke lige set "Systemet skal implementeres vha. sockets i java." Men giver dette ikke en ret tyk client...i henhold til "...Klienterne skal være flade..."
Ja, det jeg ønsker, er en løsning i stil med det arne beskriver kl. 01.15.
jeghaderorganisationer> måske jeg har taget munden lidt for fuld mht. mine udtalelser om ansvarsfordelingen - har nok ikke helt styr på begreberne. Det jeg mener er, at logikken til at styre chat og spil placeres på serveren .. m.m. I tilråder andet.
arne kl 01.20> Mht. URL og billeder, beder du mig om at præcisere eller er det et forslag til en løsning?!
| -> Jeg er ikke klar over, hvad der er mest hensigtsmæssigt. Min tanke er, at alle billeder ligger samlet et sted på serveren (eller måske på en webserv, hvis det er det der skal til), og så kan alle klienter hente derfra løbende.
Vil det måske være bedre at oprette 20 ImageIcons på serversiden, og så sende dem til klienterne.
Der kommer formentlig til at være en del trafik, taget i betragtning, at spillespladen skal vises påny, hver gang en tur har forekommet.
Jeg har implementeret med JButtons nu, og det virker fornuftigt.
Beklager at jeg ikke griber den med det samme: (arne_v sagde) "du vil hente billeder via URL men vil du så både have en web server og en socket server ?"
Anbefaler du at billederne placers på en websrv?! Burde man evt. lade klienten downloade billederne sammen med programmet i stedet?
I Java vil du kunne lade billederne være i den jar fil som applikationen er pakket i + eller du vil kunne lade applikationen hente fra en en HTTP URL (web server)
medmindre du har specielel behov for at opdatere centralt tror jeg at jeg ville pakke i jar
Tak for input. Jeg har fået det til at fungere med billederne på en websrv nu. Følger dit råd mht. jar-filer, hvis der bliver tid senere.
Mht. til kommunikationen, har jeg tænkt på at sende "Message" objekter, hvori der kan lagres informationer omkring afsender, modtager og typen af indhold. Min tanke er at der altid skal sendes message objekter, hvadenten der sendes chat tekst, eller information om spillets udvikling (f.eks. et træk). For at afkode informationen fra message objekterne, vil jeg lave protokol metode på serveren og klienterne.
Synes du dette lyder fornuftigt?
Du må bare sige til, hvis du synes jeg presser citrone i forhold til mængden af spørgsmål kontra point
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.