Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Множественные вызовы и amfphp (http://www.flasher.ru/forum/showthread.php?t=187666)

maxmask 22.11.2012 15:47

Множественные вызовы и amfphp
 
Здравствуйте!
Делаю простенькую социалку, клиент на чистом as3, сервер - nginx-php-mysql.
Для транспорта между клиентом и сервером решил использовать amfphp, так как это решение показалось наиболее простым, распространенным и проверенным (посмотрел пакеты - даже zynga в своих играх шлет вызовы к gateway.php, а у них-то пассажиропоток - будь здоров!).

Сперва я напоролся на следующую проблему:
При одновременном вызове двух серверных методов (назовем их test1() и test2()) с помощью двух netConnection.call(), оба итоговых ответа приходили одновременно. То есть, если я на стороне сервера ставил внутри функции test1() sleep в 1 секунду, а в test2() ставил sleep в 3 секунды, то оба ответа клиенту приходили через 3 секунды.
Окей, проблема решилась созданием нескольких экземпляров netConnection'а, каждого со своим вызовом connect("gatewayUrl").

Вопросы такие:
1) Правильно ли плодить экземпляры netConnection'а, если мне нужно одновременно послать и получить несколько запросов? Не возникнет ли при этом каких-либо проблем? Или стоит отказаться от этой идеи и реализовать некую очередь: например, ждать прихода первого ответа сервера, прежде чем слать второй; либо паковать запросы к обоим серверным методам, которые нужно вызвать, в один пакет и на стороне сервера разбирать их? Как вернее будет поступить?
2) Есть ли какие-либо советы/примеры/ссылки/статьи/либы/фреймворки, в которых можно нарыть информацию о том как правильные пацаны реализуют связку as3 - amf php, где предполагается множество асинхронных вызовов сервака? Вчерашним вечером ковырял гугл по запросам типа amf/netconnection as3 multiple/asynchronous calls/connections. Чего-либо годного не нашел - всё по мелочи, банальные баги, либо туториалы для новичков. Если кто-то может рассказать по этой теме что-то полезное хотя бы в приватной беседе - буду очень благодарен.

Спасибо.

AlexCooper 22.11.2012 16:17

http://www.flasher.ru/forum/showthread.php?t=186623
Смотрите мой пост в самом низу.

Добавлено через 1 минуту
Ничего не плодиться и запросы обрабатываются по ответам от сервера. Так же используйте AMFPHP что я дал в том посте во вложении.

maxmask 22.11.2012 16:31

AlexCooper,
большое вам спасибо! В принципе, это то что мне было нужно в идеале - рабочий проверенный пример.

Модераторам:
если это необходимо, то можно считать тему закрытой.

AlexCooper 22.11.2012 16:38

пожалуйста. Возникнут трудности обращайтесь.
при работе с базой в php писать
PHP код:

public function getData($data) {
    
$data $this->extra($data);
    
$sql "SELECT * FROM `db`.`table` WHERE `table`.`pole`='var'";
    
$query mysql_query($sql)


имеется ввиду то что создавать новое подключение к БД не нужно

terbooter 22.11.2012 18:57

maxmask, скажите, а так ли необходим AMFPHP?
Обычный JSON гораздо проще и надежнее.

maxmask 22.11.2012 20:58

terbooter,
в некоторых местах проекта понравилось и показалось очень удобным использовать возможность "ненапряжной" передачи типизированных объектов (имею в виду объекты с кастомными типам, конечно). Сервер возвращает, например, объект со свойствами UserVO, который тут же в клиенте становится инстансом такого же класса UserVO. Проще рефакторить, проще писать, не нужно помнить, какие есть свойства у какого ответа сервера и т.п.
А в остальном использовать стал потому что "так делают все" (многие, во всяком случае), ну и однажды участвовал чуть-чуть "на птичьих правах" в портировании социалки с запада в российские сети, а авторы там использовали amf. У меня это как-то отложилось в голове...

Скажите, есть ли какие-либо преимущества у обычных UrlLoader'ных запросов перед AMF, кроме отсутствия прослойки в виде самого AMF? Вы же, наверное, их имели в виду? Или сокеты какие-нибудь?

terbooter, вы подтолкнули меня к прочтению интернетов по этой теме. Вот что я нашел, может кому-то будет интересно:
1) http://www.tricedesigns.com/2011/11/...-applications/ . Краткое резюме: "My findings are that AMF and JSON have comparable performance in smaller record sets. However, AMF seems to have better performance as data sets grow. In my test cases, the 1000+ record results were consistently faster using AMF".
2) http://www.developria.com/2008/09/am...on-vs-xml.html Автор пишет: "The truth is that performance differences between JSON and AMF are not that wide". Он дает ссылку на чужое исследование, правда, ссылку битую.
Тем не менее, если есть плюсы использования простых пересылов JSON'а по сравнению с amf, буду рад их услышать.


Часовой пояс GMT +4, время: 05:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.