Domanda

Sto usando RemoteObjectInvoker di Mate per chiamare i metodi nell'API basata su fluorinefx. Tuttavia, tutte le richieste sembrano essere inviate alla sequenzialità del server. Cioè, se invio un gruppo di messaggi contemporaneamente, il 2 ° non viene inviato fino al primo ritorno. C'è comunque per cambiare questo comportamento? Non voglio che la mia app non risponda mentre una lunga richiesta sta elaborando.

È stato utile?

Soluzione

Questo Discussione ti aiuterà a capire cosa succede (parla di Blazeds/LiveCylce, ma presumo che il fluoro stia usando lo stesso approccio). In poche parole quello che succede è: a) Flash Player sta raggruppando tutte le tue chiamate in un post HTTP. b) Il server (blazeds, fluoro ecc.) Riceve la richiesta e inizia a eseguire i metodi in serie, uno dopo l'altro.

Soluzioni

a) Avere un post HTTP per metodo, anziché un post HTTP contenente tutti i messaggi AMF. Per questo è possibile utilizzare HttpChannel invece di AmfChannels (internamente utilizza flash.net.urlloader anziché flash.net.netConnection). Sarai limitato al numero massimo di connessione parallela definita dal browser.

b) Avere un solo post HTTP ma implementa una soluzione intelligente sul server (ti costerà molto tempo di sviluppo). Fondamentalmente puoi scrivere il tuo processore parallelo e utilizzare i consumatori/editori di messaggi per inviare il risultato dei tuoi metodi al cliente.

c) C'è una soluzione alternativa simile a a) https://bugs.adobe.com/jira/browse/blz-184 - Crea il tuo remoteObject a mano e aggiungi un ID casuale alla fine dell'endpoint.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top