Обсуждение способов реализации
Почитал про своего рода асинхронность в php, узнал, что можно делать long pool'ы, другими словами "длинные запросы", а также узнал, что есть в пхп некие веб-сокеты, с помощью которых тоже можно реализовать необходимую задачу — моментальные сообщения.
Хочу узнать, насколько трудна и продолжительна будет такая работа, ибо данная тема важна для многих, а обсуждения так и не нашел на форуме.
Прошу немного просвятить по этому поводу и сказать в чем я, возможно, ошибаюсь.
В качестве экзерсисов пробовал делать чат комнату. Не то что бы нужен скрипт чата, просто был интересен сам процесс создания.
Для запроса новых сообщений использую такую простой способ как
<script> function show() { $.ajax({ url: "components/chat/time.php", cache: false, type: "POST", data: {online:"1"}, success: function(html){ $("#content").html(html); } }); } $(document).ready(function(){ show(); setInterval('show()',1000); }); </script>
Кто нибудь укажет мне на минусы варианта?
Минусы — падает сервак при любой маломальски реальной активности. Тоже гуглил на эту тему, тут только сокеты…Кто нибудь укажет мне на минусы варианта?
а разве в инстанте есть система личных сообщений в режиме чата?так что чем ваш вариант отличается от обычного, встроенного в инстант?
Насколько я знаю только это instantcms.ru/addons/neomessenger-i2.html дополнение
Сокеты — пока не могу разобраться.Минусы — падает сервак при любой маломальски реальной активности. Тоже гуглил на эту тему, тут только сокеты...
Я помню с модулем "кто онлайн" на аяксе, который посылал постоянные запросы на обновление статистики, сайт на виртуальном хостинге у меня падал на 500 чел онлайн.
Более менее мощный сервер вероятно потянет подобный чат и с парой тысячей пользователей онлайн, (???) что само по себе маловероятно — такое количество людей одновременно. В чатах маил ру такое могло быть когда то, к тому же больше 100-200 человек в чат комнате одновременно, это в любом случае не желательно, потому что сложно читать и один флуд, значит в любом случае стоит установливать ограничение на количество человек которые могут одновременно находиться в комнате.
Не знаю насколько это трудно, но думаю, разработчики вполне могут реализовать мгновенные сообщения.
И тогда появляется вопрос, почему это не сделали? Есть какие-либо причины, почему не стоит это реализовывать?
Нужен отдельный сервер или vps для их использования.
Нужен отдельный сервер или vps для их использования.
Понял, хотя все же, думаю, серьезные проекты на Instant тоже имеются, и было бы неплохо в дальнейшем для них сделать возможность включения мгновенных сообщений.