Я использую Mate's RemoteObjectInvoker для вызова методов в моем API на основе FluorineFX. Тем не менее, все запросы, кажется, отправляются на сервер последовательно. То есть, если я отправляю группу сообщений одновременно, второй не отправляется до тех пор, пока не вернется первая. Есть ли способ изменить это поведение? Я не хочу, чтобы мое приложение не реагировало на длительный запрос.В Mate, отправка двух или более запросов на сервер одновременно?
ответ
This нить поможет вам понять, что происходит (речь идет о blazeds/livecylce, но я полагаю, что Фтор использует тот же подход). В нескольких словах происходит следующее: a) Flash-плеер группирует все ваши вызовы в одном сообщении HTTP. b) Сервер (BlazeDs, Fluorine и т. Д.) Получает запрос и начинает последовательно запускать эти методы один за другим.
Solutions
а) Есть один HTTP пост по методу, вместо одного HTTP пост, содержащий все сообщения AMF. Для этого вы можете использовать HTTPChannel вместо AMFChannels (внутри он использует flash.net.URLLoader вместо flash.net.NetConnection). Вы будете ограничены максимальным количеством параллельного соединения, определенного вашим браузером.
b) Имейте только одну HTTP-почту, но используйте на сервере умное решение (это будет стоить вам много времени разработки). В принципе, вы можете написать свой собственный параллельный процессор и использовать потребителей/издателей сообщений, чтобы отправить результат ваших методов клиенту.
c) Существует обходное решение, подобное а) на https://bugs.adobe.com/jira/browse/BLZ-184 - создайте свой удаленный объект вручную и добавьте случайный идентификатор в конце конечной точки.