PHP сокеты - что мне нужно для работы с ними? - PullRequest
0 голосов
/ 28 января 2012

Только вчера я спрашивал своего друга, как он будет эмулировать прямые каналы связи между двумя клиентами через веб-сервер для целей создания приложения чата, но только с использованием PHP / MySQL / JavaScript.

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

Итак, мой вопрос заключается в следующем: если у меня нет доступа к моему собственному серверу (у меня есть домен, размещенный на общем сервере, который я также использую для тестирования), могу ли я по-прежнему использовать сокеты для достижения своих целей?Цель?Если да, то как именно?(Пожалуйста, поймите, что я совершенно новичок в этой идее) Если нет, то как еще можно реализовать каналы связи?Моя единственная идея на данный момент - просто отправлять периодические запросы (AJAX) на веб-сервер, на котором будет храниться приложение, и запрашивать любые новые сообщения, если таковые имеются.Но это не представляется возможным.

Заранее спасибо за помощь!

1 Ответ

3 голосов
/ 28 января 2012

Я думаю, что ваш друг пытается получить Comet для вашего чата.

Предполагая, что он заставляет вас использовать PHP-сокеты в качестве демона, я очень сомневаюсь, что поставщик общего хостинга позволит вам это сделать.

Вы можете попробовать повесить скрипт PHP, пока не появятся данные. Однако это быстро потребляет ресурсы на CGI-сервере, поскольку PHP-сервер не может определить, подключен ли клиент. Я знаю это по опыту.

Для такого рода вещей я настоятельно рекомендую вам получить выделенный сервер или VPS и написать свой бэкэнд в виде, подобном socket.io , который автоматически решает все ваши проблемы со связью на стороне клиента и сервера. PHP, MYSQL и серверы, которые разветвляются для обслуживания запросов, обычно являются наихудшими сценариями для реализации Comet, поскольку они требуют значительных накладных расходов и не масштабируются.

Если вы не можете позволить себе запустить собственный сервер Comet, тогда опрос может быть вашим единственным вариантом. Это будет наиболее ресурсоемким и наименее отзывчивым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...