2012-10-26 6 views
5

Sto sviluppando un'applicazione Android in cui gli utenti possono competere in una sorta di battaglie. Sul lato server devo ricevere richieste da parte dell'utente per iniziare una battaglia, e quindi, usando un algoritmo, scegliere l'avversario più preferibile per lui. Durante una battaglia ho anche bisogno di inviare notifiche ai concorrenti sulle azioni dei loro avversari.Informazioni sul polling lungo: client (android) e server (asp net)

Quindi sembra che sia necessario implementare il polling lungo sul mio server. Le mie domande sono: lato

  1. Server. Sto usando il server mvc asp.net. Ho dato uno sguardo al framework SignalR e sembra essere proprio quello di cui ho bisogno. Tuttavia, solo perché sono nuovo al lungo sondaggio, non ho compreso i suoi principi interni di lavoro. Quindi ho bisogno di spiegazioni su come utilizzare questo framework o su come implementare il polling lungo in altro modo.

  2. Lato client. Per quanto ho capito, il modello delle richieste di polling lunghe differisce leggermente dal modello standard "richiesta-risposta", quindi mi sto anche chiedendo come implementare queste richieste sul lato client.

Non vedo l'ora di spiegazioni su argomenti che ho descritto.

+0

Partenza: http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx Esso mostra la base e una demo di lavoro. Credo inoltre che SignalR sarebbe ottimo per il tuo scopo e non è difficile da usare! – Sindre

risposta

4

Questo potrebbe non essere la risposta che stai cercando, ma perché vuoi andare a lungo polling . puoi fare il tipo di polling "pull" per questo tipo di notifiche SE stai facendo il polling solo quando gli utenti sono impegnati in battaglie.
In questo modo verrà salvata anche la durata della batteria. All'inizio della battaglia, avviare un servizio in background, che esegue il polling del server ogni 2-3 seconds (è possibile che una latenza di 2-3 secondi sia accettabile). E avvisare l'utente di conseguenza. Quindi interrompi il servizio quando la battaglia è finita.
Questo sarà molto più facile da implementare.
Ma se è necessaria la notifica istantanea, è possibile utilizzare Google Cloud Messaging Service (è una forma di polling lungo). Per saperne di più su come funziona, vedere this