ugrás a tartalomhoz

szerverrel allando kapcsolattartas, socket

ErdosJ · 2007. Nov. 30. (P), 20.40
sziasztok

az elozmenyekhez hozzatartozik, hogy perlben irt daemonomat most at szeretnem irni javaban, socketkezelessel, objektumorientacioval, szalkezelessel. (hogy is mondjam.. rajottem, hogy igazatok volt.) igy viszont az elozo mukodest is ujragondolom. tudom, katasztrofalis, hogy semmit nem tudok befejezni, de addig nem nyughatok, amig meg nem talaltam a legjobb megoldast..

a nagy kerdesem az -hogy egy kicsit konkret legyek- hogy meg szeretnek jeleniteni egy progressbart, ami n-tol indul, s sebesseggel halad es a szerver oldalan tortenni fog valami pont akkor, amikor a nullahoz eler(ne), a kliens oldalon meg eltunik a progressbar. a szerver oldal akkor is tevekenykedik, amikor nincsenek bongeszok nyitva.
1) szimplan ajax-ban meg lehet oldani, hogy felvegye a kapcsolatot (socketen) a szerverrel, mindig lekerdezze a progressbar allasat, esetleg igeny szerint bezarja? (mint pl telnet..)
2) ha nem, milyen nyelvben erdemes megirni a kliens oldalt?
3) ha nem, es ajaxban szeretnek tovabb gondolkodni, akkor az egy jarhato ut, hogy minden ajaxos http lekeresnel szerver oldalon egy php script socketet nyit a javaban irt daemonhoz, lekerdezi a progressbar allasat es a sebesseget, majd bezarja a kapcsolatot es jsonban visszater az adatokkal?
4) ha van egyeb otlet, mi lenne az?
5) ez nem tartozik ide, de az ilyen szervereket lehet mud szervernek nevezni?

valaszaitokat varom
ErdosJ
 
1

Csak gyorsan

vbence · 2007. Nov. 30. (P), 21.10
Pár gondolat:
Egy java alkalmazással lehet AJAXon beszélni, csak egy minimális HTTP kezelést (fejlécek küldése) kell megírni hozzá.
Ha tudod, hogy mikor fog bekövetkezni az esemény a "visszaszámlálás" után, akkor elég ezeket az adatokat elküldeni, és a kliens kiszámíthat mindent ezekből az adatokból, tehát nem kell frissítgetni ajaxszal.
2

Re: Csak gyorsan

ErdosJ · 2007. Nov. 30. (P), 21.22
ez eddig vilagos. csak hat ugy megis sokkal inkabb realtimeabb lenne :)
valojaban attol felek, hogy ha a szerveroldalon tortenik valami, ami miatt a progressbar megall, vagy lelassul/felgyorsul, akkor a felhasznalo errol keson ertesul.
es ha mar ugyis socketet hasznalok, akkor hadd hasznaljam ki rendesen.
4

Applet vs flash

vbence · 2007. Dec. 1. (Szo), 14.48
A leírásból nem tűnt úgy, hogy változik a progressbar állása, inkább egy visszaszámolásnak tűnt. Ha változik akkor persze kell frissíteni.

Ahogy Zila írja ez a két lehetőséged van. A crossdomain policyt nem értem, ha ugyanaz a game szerverd neve mint ahonnan a html jön (csak más port), akkor a szerver elérhető lesz az applet vagy flash számára.

Az applet lassabban töltődik be, de tudsz vele UDP-t kezelni, ami lehetővé teszi (elviekben) több mint 65000 játékos egyidejű jelenlétét, tcp alapon ez a max.
6

Re: Appelt vs flash

ErdosJ · 2007. Dec. 1. (Szo), 15.05
a progressbar valoban egy visszaszamlalo, de megallhat, esetleg gyorsulhat (de ez ugyis attol fugg, hogy mire kattint a felhasznalo, tehat meg ez is megoldhato lenne..) de a progressbar csak egy pelda volt.
tenyleg: applet vagy flash?
7

Mindegy

vbence · 2007. Dec. 1. (Szo), 15.49
Nem számít. Írj egy JS osztályt, ami üzenetkezeléssel foglalkozik. Egy metódussal küldhetsz a szerver felé üzenetet, és beállíthatsz egy handler funkciót, ami meghívódik a szerverről jövő üzenet esetén.

Ez működik majd (wrapperként) közre a js és a flash vagy applet között, így bármikor válthatsz a technológiák között. Most elég egy minimális implementációt írni, monjuk javában, aztán elég eldöntened később, szerintem ne itt ragadj le.
8

beállítások

zila · 2007. Dec. 1. (Szo), 21.53
Bocsi, a crossdomain lehet, hogy nem kellett, de biztonsági beállításokat kellett állítanom az tuti :)
3

ajax socket

zila · 2007. Dec. 1. (Szo), 13.14
1) szimplan ajax-ban meg lehet oldani, hogy felvegye a kapcsolatot (socketen) a szerverrel, mindig lekerdezze a progressbar allasat, esetleg igeny szerint bezarja? (mint pl telnet..)


Ajax-szal nem tudsz socketeken kommunikálni, csak xmlhttprequest-et tudsz vele indítani. Ha socketen szeretnél kommunikálni akkor vagy egy java applet kell az oldalba, vagy egy kis flash-t pakolsz bele, és azon kersztül js-ből is lehet socketet kezelni:
http://manfred.dschini.org/2006/05/26/real-javascript-sockets/

Persze ehhez kell crossdomain.xml meg biztonsági beállítások módosítása szükséges, viszont működik, én már próbáltam, igaz csak sandbox-ban...

A MUD az a Multi-User Dungeon rövidítése, tehát pusztán attól, hogy socket, vagy akárhogy beszélgetsz egy játék szerverrel még nem lesz mud szervered...
Kis info:
http://www.livinginternet.com/d/da_own.htm
5

Re: ajax socket

ErdosJ · 2007. Dec. 1. (Szo), 15.01
koszonom a valaszod.
szamitottam arra, hogy webbongeszo nem lesz erre kepes.. de amit kuldtel, nagyon erdekes. tudtok meg ilyenrol, van olyan, ami prototypeosabb? vagy erdemes irni egy olyat?
es mit ajanlotok, java applet vagy flash?
9

irni kell

zila · 2007. Dec. 1. (Szo), 21.56
Szerintem nem nagy kunszt írni egy kis js osztályt ami hívogatja a flash-t...
10

Re: irni kell

ErdosJ · 2007. Dec. 2. (V), 02.16
hat nekem sem a js-sel gyulik meg a bajom...