![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 3.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cześć. Zastanawiam się nad stworzeniem internetowej kafejki szachowej. Chcę napisać aplikację podobną do tej na stronie http://64pola.pl/. Dane pomiędzy graczami muszą być przesyłane możliwe jak najszybciej z minimalnym opóźnieniem.
Wpadłem na pomysł, żeby skorzystać z klasy Ajax.PeriodicalUpdater z biblioteki Prototype. Działa to na takiej zasadzie, że JS asynchronicznie pobiera lub zapisuje dane z/do pliku (lub bazy danych, co chyba jest kiepskim pomysłem). Problem w tym, że jeśli w kafejce będzie grać jednocześnie kilkadziesiąt osób, to obciążenie serwera będzie ogromne. Dodatkowo powstaje opóźnienie związane z zapisem do pliku. Czy istnieje jakiś sposób w JavaScript, ActionScript albo w czymś innym oprócz Javy na nawiązanie bezpośredniego połączenia między graczami za pomocą przeglądarki? Ten post edytował Koleś 15.08.2007, 16:22:40 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 359 Pomógł: 1 Dołączył: 16.04.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
No więc tak - przez Ajax możesz łączyć się z serwerem z którego jest odpalany skrypt - można to obejść robiąc w php swojego rodzaju proxy z którym łączy sięnasz Js, a php wymiania dane między nim a jakimśserwerem. Co do Javy - oczywiście da się w apleci zrobić wszystko - tylko do używania socketów musisz sobie stworzyć "sztuczny certyfikat", co jest konsekwencją, że user musi kliknąć "Tak" jak wyskoczy mu paskudne wielkie okno z ostrzeżeniem, że wchodzimy na strone o nieznanym podpisie. Co do podpisu - możesz go uzyskać za chyba okolo 300 dolarów - obejdzie się wtedy bez okienka. Więc - jest sens? Js też ponoć obsługuje sockety - wykorzystuje te z flashplayer (http://www.devpro.it/xmlsocket/) - teraz pozostaje kwestia obejścia firewalli, które będą płakały za każdym razem (oczywiście mowa o windowsie) - a gdy któryś z hostów stoi za NAT'em - twój pomysł z połączeniem bezpośrednim - pada (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Więc najrozsądniejszym rozwiązaniem jest stworzenie centralnego serwera, przez który rozgrywki się będą rozgrywać. Najrozsądniej byłoby to zrobić w Java, ale najtrudniej - polecam więc AJAX + PHP + MySQL - a co do twojego gdybania, że kilkadziesiąt userów zarżnie serwer - odpada może kilkadziesiąt tysięcy - tak. Opóźnienie - będzie, ale łatwo to rozwiązać pytasz często jak możesz - pytasz serwer cczy drugi gracz zrobil ruch - dostajesz odpowiedz - to albo reagujesz albo znowu pytasz. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Uff, pozdrawiam, Kamil. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 16:32 |