Autore Topic: Gestione dati di più Client  (Letto 739 volte)

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Gestione dati di più Client
« il: 17 Luglio 2011, 17:25:52 CEST »
0
se dovessi accedere allo stesso file PHP da più client devo creare un ClientHTTP che possa essere condiviso da più App(quindi Activity), ma poi sorgerebbe il problema dei conflitti se si accede allo stesso momento allo stesso file PHP giusto?

Leggendo qua e la mi pare di aver capito che per ovviare al problema si crea un ClientHTTP che funge da ThreadSafe.

E' giusto ciò che ho detto oppure ho dato sfogo alla fantasia?
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Gestione dati di più Client
« Risposta #1 il: 17 Luglio 2011, 20:23:35 CEST »
0
Lo scenario che hai descritto è poco chiaro, ma in generale non è un problema richiamare contemporaneamente la stessa pagina PHP, altrimenti milioni di siti web avrebbero grossi problemi ad avere più di un visitatore alla volta. Tutto dipende da cosa deve fare questo script PHP, se accede ad un file nel filesystem potresti avere dei problemi, se accede ad un database puoi fare in modo da non avere alcun problema.

Cos'è che devi fare di preciso?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Gestione dati di più Client
« Risposta #2 il: 18 Luglio 2011, 11:01:50 CEST »
0
No per ora non ho in mente di accedere al filesystem, ma solo al DB di MySql per lettura, scrittura e quindi aggiornamento dati, ovvero i soliti 3 passi: connessione httpclient, conversione inputstream e parsing json. Quindi lavorando solo sul DB non dovrebbe essere un problema avere + connessioni.
Rigirando la domanda: in quali occasioni allora uso l'HttpClient in un contesto multithreading? (se riesci a spiegarmelo anche con un esempio di scenario magari per me rimane più chiaro, altrimenti va bene solo a parole :-) )
Grazie in anticipo
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Gestione dati di più Client
« Risposta #3 il: 18 Luglio 2011, 11:48:16 CEST »
0
Ogni volta che devi stabilire una connessione http (con httpclient nel tuo caso), anche una sola, devi farlo in un thread (sia esso Thread o AsyncTask) separato da quello principale della tua applicazione. A maggior ragione se devi fare più di una connessione, puoi fare più thread o fare in modo che lo stesso thread le esegua in sequenza.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Gestione dati di più Client
« Risposta #4 il: 18 Luglio 2011, 12:39:07 CEST »
0
Ah ok, quindi se ho capito bene:
1) quando avvio un Activity che esegue una connessione HTTP, alla fine del ricevimento dati di una query tramite un file PHP , questa connessione verrà chiusa (essendo asincrono lo scambio dati) e se dovessi ricevere una nuova query (dalla stessa Activity e in questo caso dallo stesso file PHP) dovrei quindi riaprire la connessione con un nuovo HttpClient.
Corretto?

2)Mi hai detto:
A maggior ragione se devi fare più di una connessione, puoi fare più thread o fare in modo che lo stesso thread le esegua in sequenza.
Quindi:
caso a):
più connessioni in sequenza è meglio farle quando ad esempio con un solo click ho bisogno di ricevere più di una risorsa
caso b):
più thread con ciascuno una singola connessione sono preferibili ad una richiesta asincrona di una singola risorsa.

Ho interpretato correttamente o sbaglio qualcosa?
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)