Jestem programistą aplikacji PHP, który zbudował kilka dużych projektów w PHP w/CodeIgniter. PHP zawsze wykonało zadanie, ale teraz pracuję nad nowym projektem, który buduję za pomocą javascript extjs4 framework po stronie klienta. Mam też pytania do doświadczonych programistów nodejs.Wyjaśnianie stylu rozwoju nodej programistom PHP w konkretnej sytuacji
W moim najnowszym projekcie PHP żądanie logowania użytkownika wymagało mojego serwera do wykonania połączenia API z Facebookiem. Sposób, w jaki sobie z tym poradziłam, w celu poprawy skalowalności, był moim klientem, który składałby początkowe żądanie logowania, serwer przekazywałby żądanie do serwera zadań typu "gearman", a proces roboczy w tle przejmowałby zadanie i wykonywał wywołanie API. W międzyczasie serwer będzie odpowiadał klientowi, a następnie przeglądarka klienta rozpocznie odpytywanie serwera za pomocą AJAX, aby sprawdzić, czy zadanie zostało zakończone. (Och, i przekazałem wyniki wywołania API Facebook od pracownika do serwera aplikacji z memcached). Zrobiłem to, aby zwolnić serwery aplikacji, aby obsługiwać więcej współbieżnych żądań od użytkowników, ponieważ PHP jest blokowane, a wywołanie interfejsu API Facebooka zajmuje kilka sekund.
Moje pytanie brzmi: czy cały model serwerów aplikacji, serwer zadań dla kierowców i pracowników działających w tle ma sens dla rozwoju nodejs, ponieważ nodejs nie jest blokowany? Czy po prostu zaakceptowałbym żądanie ajaxowe od klienta, aby się zalogować, zadzwonić do API facebook'a z serwera aplikacji i czekać na jego odpowiedź (podczas obsługi zgłoszeń innych użytkowników, ponieważ nodejs nie jest blokowany), a następnie odpowiadać użytkownikowi?
Rozważam również wejście w rozwój nodejów, aby móc korzystać z niesamowitego środowiska heroku.
Chciałbym, żeby ktoś odpowiedział na to, jestem w podobnej sytuacji. – Dhiraj