Pracuję nad grą przeglądarkową ze strukturą gry i zdecydowanie potrzebuję longpollingu, ale nie bardzo rozumiem, jak z niej korzystać. WebSockets byłby idealny do tego, ale nie jest jeszcze obsługiwany przez wiele przeglądarek.Rzuć długopis w grę ramową online
Oto, co chcę zrobić: gdy użytkownik się zaloguje i przejdzie do kontrolera gier, chcę nawiązać połączenie i pozostawić je otwarte. Chcę to zrobić dla wszystkich użytkowników online, więc mogę wyświetlić ich listę na stronie, aby mogli się ze sobą bawić. Przyjrzałem się the documentation, ale nie rozumiem, jak mógłbym to zaimplementować w moim przypadku. Ponieważ po prostu nie ma niczego, co chciałbym obliczyć (w przykładzie generują plik pdf), chcę tylko, aby połączenie pozostało otwarte.
Zastanawiam się też, w jaki sposób powinienem śledzić wszystkie te otwarte połączenia? Właśnie teraz mam kolumnę online
w mojej tabeli użytkowników w bazie danych, którą aktualizuję. Za każdym razem, gdy ktoś łączy się, muszę zaktualizować bazę danych. Czy są na to lepsze sposoby, czy jest to w porządku?
I wreszcie, zakładając wszystkie powyższe prace. Kiedy gracz A, wybiera gracza B do gry: jak powiadomić gracza B o tym? Czy po prostu wyślę trochę kodu JSON i zmieniam stronę za pomocą javascriptu po stronie odtwarzacza B, czy też wyślę go na zupełnie inną stronę? Nie wiem, jak się komunikować, gdy ustanowione są dwa połączenia i gra się rozpoczęła.
Dzięki za twój wpis, jest to całkiem pomocne. Nadal nie jestem pewien, czy websockets są właściwym wyborem w moim przypadku (ale rozumiem problemy z Long Polling). Czy znasz jakieś duże gry internetowe korzystające z gniazd? Udostępnienie tej gry dla wszystkich jest oczywiście ogromnym priorytetem i nie wiem, jak daleko zdobędą Websockets. – networkprofile
Miałem ten sam dylemat, a teraz zamierzam przejść długą drogę głosowania. To wstyd, ponieważ Websockets jest zdecydowanie lepszym rozwiązaniem, ale potencjalnie odciąłeś zbyt wielu użytkowników. Istnieje kilka gier, takich jak gra Scrabble dla wielu graczy o nazwie Words2 (http://wordsquared.com/), ale nie wiem, jak duże są! – Codemwnci
wordsquared.com użyj [Pusher] (http://pusher.com) (dla kogo pracuję). Używamy WebSockets i zastępujemy gniazda Flash w przeglądarkach, w których WebSockets nie są obsługiwane. Ponieważ Flash jest obsługiwany przez 99% przeglądarek (według Adobe), uważamy, że to rozwiązanie sprawia, że produkcja WebSockets jest gotowa - wiele osób na StackOverflow zgadza się (zobacz WebSocket gotowość [tutaj] (http://stackoverflow.com/questions/6434088/why- isnt-bosh-bardziej-popularny-szczególnie-jako-alternatywny-do-websockets-and-long)). Dodaliśmy również wbudowaną funkcję dostępności (http://bit.ly/pq56EB) dla funkcji stylu czatu, "kto jest online". – leggetter