Intereting Posts
новый запрос ajax при выпадающем выборе Белый экран Magento на странице входа администратора? Как использовать the_permalink () в wordpress, когда он завернут с помощью 'или' PHP x86 Как получить размер файла> 2 ГБ без внешней программы? Как отображать данные из mysql с помощью angular.js PHP? Вход в Amazon Phantom JS Загрузите защищенные файлы htaccess с помощью PHP и CURL Получите результаты mysql на основе долготы широты codeigniter возвращает "Message: Undefined property: Welcome :: $ load" пытается загрузить вспомогательную библиотеку lib Ошибка 324 (net :: ERR_EMPTY_RESPONSE): я не могу получить свой сайт с некоторых компьютеров Symfony Console – перезаписать параметры по умолчанию Как извлечь n число цифр в разных формах (разделенных пробелом) – PHP PHP glob () для отображения файла, который не начинается с подчеркивания? при включении () или require () мне всегда нужно использовать ../../ относительно моего файла? Есть простой способ? «Строгие стандарты: только переменные должны передаваться по ссылке» error

Является ли PHP-сокет жизнеспособным вариантом для создания чата на базе jQuery PHP?

Я разрабатываю чат-модуль для drupal. Я планирую предоставить несколько бэкэндов для обработки сообщений чата. Сначала я начал с AJAX и теперь включил в него длинную методику опроса. Затем я наткнулся на обезьяну (ajax push engine), и это выглядит многообещающе. Но для работы модуля чата потребуется установка обезьяны на стороне сервера. Хотя я также включу это в качестве одного из бэкендов для чата, основное внимание уделяю поиску решения, которое может обрабатывать приемлемое количество одновременных чатов, без каких-либо модификаций на стороне сервера, чтобы люди могли легко его использовать.

Я занимался серфингом в сети и натолкнулся на программирование PHP Socket, и это похоже на жизнеспособный вариант.

  • Если я напишу php-сервер чата, смогу ли я поддерживать соединение, которое может отправлять данные в обоих направлениях (от сервера к клиенту и наоборот), используя только jQuery (вместе с ActionScript)? Очевидно, я не буду использовать AJAX на стороне клиента.
  • Также, сколько соединений сервер сможет обрабатывать одновременно, если я напишу эффективный скрипт чата на основе php-сокета и скажу, что я посвящаю ему 50 МБ ОЗУ?
  • Будут ли люди на совместном хостинге иметь возможность запускать код на стороне сервера php, потому что у них нет доступа к оболочке, например, у нас есть возможность запускать cron?
  • Кроме того, я читал, что php не является многопоточным, поэтому вы не должны использовать сокет вообще. Это правда?
  • Есть ли другой подход, который я могу использовать, и будет более эффективным, чем это, без внесения каких-либо изменений на стороне сервера?

Solutions Collecting From Web of "Является ли PHP-сокет жизнеспособным вариантом для создания чата на базе jQuery PHP?"

О чем вы должны думать: каждое новое соединение блокирует процесс PHP. Таким образом, если вы устанавливаете соединение сокетов где-то и позволяете ему долгое время открываться, процесс PHP будет заблокирован, он не сможет принять другое соединение. Итак, если у вас было 50 процессов PHP, за один раз можно установить 50 подключений.

Вот почему я лично предпочитаю использовать Node.JS для кометных приложений, таких как chat …

Является ли PHP-сокет жизнеспособным вариантом для создания чата на базе jQuery PHP? – Нет 🙂

И учитывая ваши ограничения на общий хост и около 50 МБ оперативной памяти, я бы предложил, чтобы PHP тоже не был вариантом.

На самом деле, HTTP не идеален для такого рода вещей, HTTP – это протокол, основанный на отсутствии ответа на запрос / ответ, и вам нужен постоянный постоянный протокол, такой как XMPP.

Вы можете «взломать» его с помощью веб-технологий, как вы уже делали с длинным опросом и ajax, что является технически единственным способом сделать это через HTTP, все остальные варианты HTTP-чата – это либо непрерывный опрос, либо длительный опрос, это единственный способ сделать это с настройкой http-клиента клиентского сервера.

Вы можете сделать это «легче», используя технику, такую ​​как node.js (см. Демонстрацию чата node.js). Это легче на стороне сервера ресурсов, но отбрасывает ваше общее хост-требование.

Или вы можете сделать это с помощью техников, созданных для этой работы, которые будут использовать сервер XMPP / Jabber на бэкэнд и клиент XMPP на основе flash / flex на передней панели – это легко поддерживает 5000+ соединений на серверный сервер, но снова убивается общим хостом.

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

Надеюсь, это поможет!

проверьте этот учебник ….. это поможет вам создать веб-чат-приложение, используя jquery http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based- чат-приложение /

вы можете иметь исходный код и попробовать себя и узнать …

PHP не подходит для такого рода проблем. Вы можете написать демона, который использует функции pctnl для разветвления нового процесса на каждом соединении (до некоторых настроенных # активных процессов), но он собирается пережевывать память, потому что вы открываете новый процесс для каждого соединения. Учитывая ваши требования, я бы посмотрел в другое место.

Кажется, вы хотите, чтобы этот материал был размещен на общедоступном веб-хостинге, и хотя я могу понять, почему, вы должны хотя бы признать, что у вас действительно нет веб-приложения, у вас есть приложение для чата (возможно, имеет веб-интерфейс).

Я думаю, что это может сработать, с php, jQuery и некоторым SQL на сервере, а также с некоторыми сильными fudging

Я бы использовал Ajax, хотя бы почему? то вы coudl пропустите сокеты?