Avatar
mv
Člen
Avatar
mv:

Ahoj, dělám prohlížečovku jako je třeba travian a potřeboval bych když hráč A pošle útok na hráče B, tak aby se to hráč B když je online hned dozvěděl, jednoduše rečeno potřebuji aby server poslal klientovi nějakou zprávu. První mě napadl samozřejmě jquery AJAX nebo XMLHttpReguest a každou sekundu se serveru ptát jestli na hráče někdo útočí, ale příšlo mně to hrozně náročné. Pak mě ještě napadly sockety, ale jelikož hostingy mají téměř vždy omezenou dobu konání skriptu, tak je to taky nereálné řešení. Jak byste to řešili vy a jak je to dělané v takovýchto hrách?

 
Odpovědět 21.6.2015 18:31
Avatar
Dominik Gavrecký:

Myslím si že jednoznačne websockety ktoré sú na to určené ... A webhosting zvoliť tak aby ťa neobmedzoval.

Nahoru Odpovědět 21.6.2015 18:33
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
Richard
Člen
Avatar
Richard:

Server běžně nemůže prohlížeči sám od sebe poslat zprávu, prohlížeč se může zeptat serveru a ten mu pošle odpověď.

Řešení ajaxem je nevhodné, řešení websockety taky není ideální, ale nic lepšího v současné době asi není.

Nahoru Odpovědět  +1 21.6.2015 18:59
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
IT Man
Redaktor
Avatar
Nahoru Odpovědět  -6 21.6.2015 20:08
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Richard
Člen
Avatar
Nahoru Odpovědět 21.6.2015 20:08
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Patrik Smělý (SogoCZE)
Tým ITnetwork
Avatar
Odpovídá na mv
Patrik Smělý (SogoCZE):

Já to mám udělané tak, že php přes curl pošle zprávu na node.js server s technologii socket.io a ten to přepošle klientovi, který je stále připojen.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 21.6.2015 20:34
PHP můj oblíbený jazyk......
Avatar
Josef Kuchař (Pepa489):

Nebo můžeš použít peerjs, ten je na p2p bázi a potřebuje server jen k propojení serveru, server nabízejí zdarma: http://peerjs.com/peerserver, jediná nevýhoda je že funguje pomocí WebRTC a to je podporováno zatím jenom v ff a chrome

Nahoru Odpovědět 21.6.2015 21:18
2x piš, jednou debuguj
Avatar
mv
Člen
Avatar
mv:

To Patrik Smělý (SogoCZE) To node.js vypadá dobře, dřív jsem o tom věděl jen, že je to nějaký javascript na serveru. Ale proč tam je to php? Vždyť to lze udělat celé v node.js a to php je tam jen nějaká zbytečná mezivrstva a nebo ne?
To Josef Kuchař (Pepa489) Nedokážu si hru jako je Travian představit na principu p2p, přece se data o hráčích musí ukládat na nějaký server.
Všem děkuji za odpovědi, klienta udělám určitě WebSockety a u serveru se rozhoduji mezi socket.io s node.js, které na to co chci vypadá lépe, ale moc o tom nevím a php se sockety. Řešení zaškrtnu Patrik Smělý (SogoCZE) , protože mě navedl na node.js, tak snad se vy ostatní nebudete zlobit. :)

 
Nahoru Odpovědět 22.6.2015 12:33
Avatar
Patrik Smělý (SogoCZE)
Tým ITnetwork
Avatar
Odpovídá na mv
Patrik Smělý (SogoCZE):

Node.js je javascript na serveru, a socket.io je plugin/knihovna pro node.js. To php je tam jako odesilatel nemusí tam být a dá se to napsat jenom v node.js ale vzhledem k tomu že dělám projekt v php a chtěl jsem tam realtime tak to dělám tak že php pošle nějaké data na node.js a node.js(s socket.io) to pošle klientovi v reálném čase (klient je na ten node.js server připojen přes protokol ws://).

Nahoru Odpovědět 22.6.2015 12:41
PHP můj oblíbený jazyk......
Avatar
mv
Člen
Avatar
Odpovídá na Patrik Smělý (SogoCZE)
mv:

Ok, díky za vysvětlení. Neznáte někdo nějaký dobrý český hosting na node.js a nebo hosting kde může trvale běžet php skript jako server? Na node.js jsem našel jen https://rosti.cz/nodejs-hosting/ a na php jsem nenašel nic kde by skript mohl běžet neomezeně. VPS zatím nechci z toho důvodu, že je o dost dražší. :(

 
Nahoru Odpovědět 22.6.2015 12:59
Avatar
Patrik Smělý (SogoCZE)
Tým ITnetwork
Avatar
Odpovídá na mv
Patrik Smělý (SogoCZE):

Zde je video pro ukázku, jak to využívám já (přes ajax se pošle formulář do php, php to uloží do db a následně pošle websocket, node.js zkontroluje heslo a veme si všechny data a pošle je uživateli, u kterého je script že odposlouchává node.js server s nějakým kanálem např tam jak je vidět ve videu, komentáře a globální zprávy. Jak klientovi přijde zpráva tam jí přes javascript přidá a je hotovo, kouzlo! :D).

Video:
https://www.youtube.com/watch?…

Nahoru Odpovědět 22.6.2015 13:08
PHP můj oblíbený jazyk......
Avatar
mv
Člen
Avatar
Odpovídá na Patrik Smělý (SogoCZE)
mv:

Jaký je rozdíl mezi modulem socket.io a net?

 
Nahoru Odpovědět 22.6.2015 13:10
Avatar
mv
Člen
Avatar
Odpovídá na Patrik Smělý (SogoCZE)
mv:

Díky za to videjko, máš to velmi pěkně udělaný. :)

 
Nahoru Odpovědět  +1 22.6.2015 13:12
Avatar
Patrik Smělý (SogoCZE)
Tým ITnetwork
Avatar
Odpovídá na mv
Patrik Smělý (SogoCZE):

Já ten server teď mám na vlastním stroji u známého co má hosting, ale dříve když jsem to nějak testoval tak jsem používal VPS od hocorii >> https://hicoria.com/intro/order/vps. Je to takový dost divný hosting ale je levný a vše co jsem v tu dobu potřeboval uměl :). Akorát pokud nemáš zkušenosti s linuxem tam pozor, na vps si obvykle nainstaluješ nějaký os nejčastěji asi nějaký linuxoví a pak si tam můžeš hodit co chceš, od node.js až po nějaký herní server.

Nahoru Odpovědět 22.6.2015 13:13
PHP můj oblíbený jazyk......
Avatar
Patrik Smělý (SogoCZE)
Tým ITnetwork
Avatar
Odpovídá na mv
Patrik Smělý (SogoCZE):

To opravdu netuším, popravdě jsem pracoval pouze s socket.io :). Ale taky to nevypadá špatně.

Nahoru Odpovědět 22.6.2015 13:18
PHP můj oblíbený jazyk......
Avatar
mv
Člen
Avatar
Odpovídá na Patrik Smělý (SogoCZE)
mv:

Mám radši nizkoúrovňovější věci, ten net vypadá, že je na nižší úrovni než socket.io, takže zkusím ten a nebo to phpko. Dělal si někdy se sockety v php? Jsou tam nějaké problémy?

 
Nahoru Odpovědět 22.6.2015 13:22
Avatar
Patrik Smělý (SogoCZE)
Tým ITnetwork
Avatar
Odpovídá na mv
Patrik Smělý (SogoCZE):

http://socketo.me/ existuje toto, ale to nabízí variantu js >> php >> js je to náhrada za node.js prostě websocket server pod php ale pokud by jsi chtěl odesílat data přímo z php jako já tak to jde ale dost složitě, na to musíš mít nějaké moduly k php jednoduše jsou s tím komplikace proto mi jako lepší řešení přijde to jak to mám já.

Nahoru Odpovědět 22.6.2015 13:30
PHP můj oblíbený jazyk......
Avatar
mv
Člen
Avatar
mv:

Našel jsem velmi zajimavý zdroják v php bez nějaké knihovny :)
https://github.com/…sh-WebSocket
a tady je k němu článek
http://srchea.com/…5-websockets

 
Nahoru Odpovědět 22.6.2015 16:01
Avatar
Odpovídá na mv
Josef Kuchař (Pepa489):

Jak píše woodbin, pokud to budeš dělat websockety, nebudeš vůbec potřebovat knihovny jak je socket.io, protože na node.js serveru ti to nejspíš nakonec poběží tak jako tak a zprávy typu obrázek posílat nemusíš, takže proč na to nabalovat další balast? ;) :)

Nahoru Odpovědět 22.6.2015 16:08
2x piš, jednou debuguj
Avatar
mv
Člen
Avatar
Odpovídá na Josef Kuchař (Pepa489)
mv:

Zase je ale pravda, že PHP websockety nativně nepodporuje, tak se nejaka knihovnicka hodi :), protoze napsat si to sam neni zrovna jednoduche, chvili zabere ten protokol pochopit i kdyz je to jen lehka nadstavba nad tcp, takze je to dost podobne normal socketum. Urcite by to do nejake dalsi verze php meli pridat.

 
Nahoru Odpovědět 22.6.2015 21:49
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 20 zpráv z 20.