2012-10-26 9 views
5

Pracuję nad aplikacją na Androida, w której użytkownicy mogą konkurować w niektórych bitwach. Po stronie serwera muszę odbierać żądania od użytkownika, aby rozpocząć bitwę, a następnie, używając jakiegoś algorytmu, wybrać dla niego najbardziej preferowanego przeciwnika. Podczas bitwy muszę również wysyłać powiadomienia do konkurencji o działaniach przeciwnika.Zrozumienie długiego sondowania: klient (android) i serwer (asp net)

Wygląda więc na to, że muszę wdrożyć długi polling na moim serwerze. Moje pytania to: strona

  1. Server. Korzystam z serwera mvc asp.net. Spojrzałem na framework SignalR i wydaje mi się, że właśnie tego potrzebuję. Jednak tylko dlatego, że jestem nowy w długim głosowaniu, nie zrozumiałem jego wewnętrznych zasad pracy. Potrzebuję więc wyjaśnień, jak korzystać z tego szkieletu, lub jak wdrożyć długi głosowanie w inny sposób.

  2. Strona klienta. O ile zrozumiałem, długi model żądania pollingu nieco różni się od standardowego modelu "żądanie-odpowiedź", dlatego też zastanawiam się, jak zaimplementować te żądania po stronie klienta.

Z niecierpliwością czekam na wyjaśnienia dotyczące tematów, które opisałem.

+0

Check out: http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx To pokazuje podstawowy i demonstrację robotniczą. Wierzę również, że SignalR będzie świetny do Twojego celu i nie jest trudny w użyciu! – Sindre

Odpowiedz

4

To może nie być odpowiedź szukasz, ale dlaczego chcesz iść na długie odpytywanie . możesz wykonać rodzaj odpytywania dla tego typu powiadomień , gdy odpytujesz użytkowników tylko wtedy, gdy angażują się w bitwy.
W ten sposób oszczędzana będzie również żywotność baterii. Po rozpoczęciu bitwy uruchom usługę w tle, która odpytuje serwer co 2-3 seconds (można oczekiwać opóźnienia 2-3 sekund). I powiadom odpowiednio użytkownika. Zatrzymaj usługę po zakończeniu bitwy.
To będzie o wiele łatwiejsze do wdrożenia.
Ale jeśli potrzebujesz natychmiastowego powiadomienia, możesz użyć Google Cloud Messaging Service (jest to forma długiego sondowania). Aby dowiedzieć się więcej o tym, jak to działa, zobacz this