Подтвердить что ты не робот

Ajax Push Engine (APE) Vs Node.js

Я рассматриваю несколько вариантов для передачи данных с сервера клиенту для моего веб-приложения в режиме реального времени.

Я реализовал опрос (каждый клиент отправляет HTTP-запросы на сервер через каждые 30 секунд.) приложение, которое действительно не масштабируется после того, как находятся 10 пользователей. Это приложение. построен с использованием MySQL, PHP, HTML и jQuery.

Просьба указать, какой из них лучше рассмотреть ниже: APE Vs node.js

  • Должна иметь возможность обрабатывать не менее 400 одновременных подключений за раз
  • Сервер должен иметь возможность передавать данные всем этим клиентам.
  • Клиенты будут отправлять данные между собой.
4b9b3361

Ответ 1

Я настоятельно рекомендую вам взглянуть на Socket.IO. Это комплексное решение для push-сервера, которое включает в себя как библиотеку на стороне сервера (написанную в node.js), так и клиентскую JS-библиотеку, выполненную в кросс-браузере. Я не вижу причин для того, чтобы вы реализовали свой собственный код для того, чтобы сделать то, что уже сделано, работать и тестироваться.

Единственный случай, который socket.IO не будет обрабатывать, - это ваш третий запрос, но это невозможно в любом случае. Если я правильно вас понимаю, вы бы хотели, чтобы два клиента общались без помощи стороннего сервера? Вы не можете изменить HTTP в P2P, по крайней мере, не сейчас.

Если, с другой стороны, вы хотели общаться с двумя пользователями через ваш сервер (что-то вроде частного чата с двумя людьми), что вполне возможно с помощью socket.io.

Ответ 2

Несмотря на то, что сейчас все работают в направлении node.js, мы сделали приложение чата на основе APE, и мы очень довольны им.

APE обеспечивает то, что вы ищете довольно "из коробки", поскольку это комбинация JS на стороне сервера и клиентская инфраструктура APE_JSF, которая предоставляет функциональные возможности (и многое другое), которые вы получаете из socket.io.

В этом проекте мы обрабатываем ~ 9000 одновременных пользователей с сообщениями реального времени. Сервер nginx помещается перед APE для обеспечения поддержки deflate/gzip

Эта конфигурация (без nginx также) не будет иметь проблем с вашими требованиями даже на машине с "не очень высоким".

Поскольку вы можете передавать данные "каналу" или одному пользователю, вы должны иметь возможность достичь именно того, что вы ищете с помощью APE, от трансляций до прямых сообщений.

Ответ 3

Если вы используете Apache в существующем стеке, то, как вы уже сказали, будут проблемы с масштабированием пользователей, даже если вы используете длительный опрос вместо непрерывного. Решение может заключаться в использовании высокопроизводительного веб-сервера, такого как nginx, чтобы обрабатывать множество параллельных подключений.

С другой стороны, node.js создается для такого рода соединений concurrency и есть пакеты, такие как socket.io, что значительно упростит вашу жизнь разработчика, поскольку предлагает различные варианты транспорта с резервными решениями и другими полезными функциями.

Ответ 4

Я бы не рекомендовал ape для крупномасштабных приложений, это просто отлично подходит для чат-приложений, но поскольку массовый транспортный процесс связан с тем, что браузер клиента начинает замедляться и раздавливаться через некоторое время.