[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: технология comet
Ramzes_Ra
Как мне посоветовал johniek_comp, для реализации on-line связи с базой заместо скрипта, который обращается к ней каждые 3 секунды, нужна технология comet.

Самую адекватную статью нашёл тут http://mabp.kiev.ua/2008/04/26/simple_comet/
Всё работает, но вот проблема: всё время рядом со стрелкой - индикатор загрузки из-за этого Комета.. это не очень удобно.. Как его убрать?

и ещё.. проблема скорости работы и уменьшения нагрузки привела меня к статейке про Memcache, которая более чем в 1,5 раза снижает грузон на сервер.. стоит ли и мне ею воспользоваться вместе с кометом?



Спустя 8 минут, 46 секунд (7.08.2012 - 13:15) inpost написал(а):
Про снижение в 1.5 раза - из головы выдумал? Мой файловый кеш ускорил работу одного скрипта в 10-12 раз. Мем-кеш будет немного медленнее, ускорит где-то в 8-10 раз.

Комет - это не очень удачная реализация, я бы посоветовал стандартный пуллинг поставить, или уж если и вправду нагрузки большие, то чат на node.js + socket.io сделать. У комета много недостатков.
И вообще, ты читал про комет? Он как раз и делает те же самые обращения "каждые 3 секунды" =)
А индикатор загрузки - это обычный див, который появился в не том месте, где тебе хотелось! Но у тебя же есть файл сss для настройки стилей...

Спустя 3 минуты, 3 секунды (7.08.2012 - 13:18) sergeiss написал(а):
Цитата (inpost @ 7.08.2012 - 15:15)
А индикатор загрузки - это обычный див, который появился...

Здесь речь идет о браузерном индикаторе загрузки страницы, как я понял. Я не знаю, что там делал ТС, но если использовать iframe для асинхронной работы, то на самом деле браузерный индикатор показывает процесс загрузки.

PS. По ссылке от ТС не ходил, но вот http://javascript.ru/ajax/comet/server-patterns неплохая статья про COMET.

Спустя 10 минут, 45 секунд (7.08.2012 - 13:29) vital написал(а):

 ! 

М
Я уже устал предупреждать. Переход на личности без повода. Оскорбления.
inpost

Спустя 2 минуты, 50 секунд (7.08.2012 - 13:32) sergeiss написал(а):
"Горячие эстонские парни" (с) - давайте не будем переходить на личности!

Спустя 31 минута, 13 секунд (7.08.2012 - 14:03) johniek_comp написал(а):
Цитата
пуллинг

это же и есть тот же комет? шо не?

Спустя 56 секунд (7.08.2012 - 14:04) inpost написал(а):
johniek_comp
пуллингом называют отправку циклично пакетов на сервер. Вот пример:
while() {
ajax();
sleep(1);
}

Комет как раз им же и пользуется.

Спустя 2 часа, 47 минут, 6 секунд (7.08.2012 - 16:51) Ramzes_Ra написал(а):
много прочитал, но всётаки как сделать окончательно, чтобы потом не переделывать?

кроме сообщений у меня будет ещё скрипт, похожий на этот myscore.ru .

по какой технологии лучше всего это реализовать? Вконтакте например сообщения, вот они по какой технологии?

Спустя 3 минуты, 13 секунд (7.08.2012 - 16:54) inpost написал(а):
Ramzes_Ra
Ты думаешь, что они вот так просто все свои секреты рассказывают? И даже если так, то у тебя нет дата-центра своего личного, где десятки или сотни серверов будут выполнять распределения нагрузки. Им можно и быдло-код написать, у них то будет работать.

Я бы сделал на Ajax, потому что node.js+socket.io можно только на своём сервере! Если есть свой сервер - делай на втором. Ну а если разбираешься во флеше - я бы поставил именно на него, мне он больше всего нравится для он-лайн целей.

Спустя 5 минут, 51 секунда (7.08.2012 - 17:00) Игорь_Vasinsky написал(а):
это секрет разработчиков.

по поводу кеширования для снижения нагрузки на сервер - memcached безусловно хорош, но я как то обламался, хостер сказал что не видит смысла подключать расширение и стартавать сервер т.к. всё кешируется на уровне сервера средствами ngnix

тогда я решил использовать файловый кэш, даже создал тему здесь

http://phpforum.ru/index.php?showtopic=609...%E2%E0%ED%E8%E5

Спустя 3 минуты, 26 секунд (7.08.2012 - 17:03) Ramzes_Ra написал(а):
Цитата
Я бы сделал на Ajax

Ну вот смотри, у меня есть такой код, он работает.. суть в том, что он просто ставит в div новое число из базы (но не зависимо от того, другое оно или такое же)

<script type="text/javascript">
function ajaxcl () {
var xmlhttp;
if ( window.XMLHttpRequest ) {
// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// IE6, IE5
xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );
}
// обрабатываем ответ
xmlhttp.onreadystatechange = function () {
// если запрос к скрипту удачный
if ( xmlhttp.readyState == 4 ) {

document.getElementById("ajax-sl").innerHTML=ВЫВОДИМ ОТВЕТ;

}
}

// отправляем запрос
xmlhttp.open ( "GET", "log.php?id=<?=$_SESSION['id']?>&sl&rn="+Math.random(), true );
xmlhttp.send ();
setTimeout('ajaxcl();', 5000);
}
$(document).ready(ajaxcl());


</
script>



При загрузке страницы автоматически идёт запрос к базе и повторяется каждые 5 секунд..
Вот ajax..
Как такой скрипт на нагрузку влияние окажет?

и ещё.. я так понял, всё, для чего нужен Comet, это чтобы если в базе значение не изменилось, то не делать к ней запрос, а если изменилось, то делать и вытаскивать..
Цитата
тогда я решил использовать файловый кэш, даже создал тему здесь

Благодарю, сейчас ознакомлюсь с твоим опытом..

Спустя 5 минут, 27 секунд (7.08.2012 - 17:09) Игорь_Vasinsky написал(а):
а я попробую сделать обновление кол-ва просмотров фильмов на моём сайте по твоему опыту))

Спустя 3 минуты, 30 секунд (7.08.2012 - 17:12) Ramzes_Ra написал(а):
Цитата
а я попробую сделать обновление кол-ва просмотров фильмов на моём сайте по твоему опыту))

ну хоть кому-то мои труды пригодились)) милости прошу.. правда зачем этому параметру динамическое обновление о_О

только вот с нагрузкой на сервер и про запрос если нет изменений мне так и не ответили((((

Спустя 2 минуты, 51 секунда (7.08.2012 - 17:15) Игорь_Vasinsky написал(а):
нагрузку надо мерить))

есть сервисы эммитирующие наплыв посетителей.

Цитата
правда зачем этому параметру динамическое обновление о_О

этож плюшки wink.gif

Спустя 1 минута, 44 секунды (7.08.2012 - 17:17) Ramzes_Ra написал(а):
Цитата
сть сервисы эммитирующие наплыв посетителей.

можно пожалуйста 1 рабочий пример? smile.gif

Добавлю: для локального сервера)

Спустя 12 минут, 27 секунд (7.08.2012 - 17:29) Игорь_Vasinsky написал(а):
сгенерируй 500 iframe с сайтом своим - в лог запиши затраты ресурсов

http://php.net/manual/ru/function.memory-get-usage.php

Спустя 7 минут, 47 секунд (7.08.2012 - 17:37) inpost написал(а):
Ramzes_Ra
Чат и кеш - несовместимые вещи. Кеш для ранее созданных данных, которые через Х времени могут понадобиться Y+ людям, чтобы каждый раз не делать сложных обработок в виде: "вывода случайных пользователей" или подсчёт записей в миллионных таблицах.
На соккетах куда проще, запрос пришел на сервер, получил ты сообщение "привет", тут же node отправил его всем другим пользователям без обработок всяких, ну и в БД можно ещё добавить на всякий случай, ещё пригодится. Вот и всё, запросы отправляет сервер к клиенту через постоянное соединение, а не клиент каждый раз дёргает скрипт и он каждый раз проверяет данные с БД.
Но бесплатного ты на node.js + socket.io не найдешь, потому что это дорогостоющие и сложные скрипты, которые делают выше среднего программисты и бесплатно с новичками не делятся ими. Так что это надо учиться и изучать эти технологии.

Спустя 8 минут, 39 секунд (7.08.2012 - 17:46) Ramzes_Ra написал(а):
Цитата
Но бесплатного ты на node.js + socket.io не найдешь, потому что это дорогостоющие и сложные скрипты, которые делают выше среднего программисты и бесплатно с новичками не делятся ими. Так что это надо учиться и изучать эти технологии.

тогда не вариант даже лезть в дебри эти..
к сведению, а сколько стоит?

Спустя 12 минут, 35 секунд (7.08.2012 - 17:58) Игорь_Vasinsky написал(а):
да лан. у меня на сайте всего 100 уников в среднем в сутки - поставил на 1 сек.

у ни кто не рухнет и не кто не погибнет)

там под кол-вом фильмов в хеадере есть кол-во просмотрв. - вот на них поставил.

Спустя 26 секунд (7.08.2012 - 17:59) inpost написал(а):
Ramzes_Ra
Понятия не имею, надо смотреть на ширину функционала. Я бы от 500$ взял бы, даже так: 500-1500$, и вилка потому, что всякие чаты имеют ещё каналы, модерацию и многое другое, что надо предусмотреть.

И почему не вариант? Ты себя позиционируешь как программист, значит должен уметь или в дальнейшем научиться это всё делать!

Спустя 11 минут, 52 секунды (7.08.2012 - 18:11) Ramzes_Ra написал(а):
inpost , я позиционирую себя как невропатолог, клинический фармаколог, и немного кардиолог)

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

Цитата
сгенерируй 500 iframe с сайтом своим - в лог запиши затраты ресурсов

я сделал через Apache JMeter...
1000 пользователей в секунду, и вот результат... я не могу понять, хороший или плохой результат?))))

user posted image

Спустя 2 часа, 1 минута, 31 секунда (7.08.2012 - 20:12) johniek_comp написал(а):
inpost
я ж те грю, полинг и есть комет, заходим на страницу один раз - создаем соединение и висим там пока интернет не кончится, мы раз в 3 сек. не обращаемся по новой к серверу, а проверяем на наличие новый данных каждые 3 сек. это разные вещи

Спустя 7 минут, 28 секунд (7.08.2012 - 20:20) inpost написал(а):
комет использует технологию поллинга, но это не равно.
Это как сравнить корову с млекопитающим. Корова является млекопитающим, но млекопитающие не равняются корове.

Спустя 12 минут, 31 секунда (7.08.2012 - 20:32) Ramzes_Ra написал(а):
Цитата
комет использует технологию поллинга, но это не равно.

это как один из вариантов реализации комета))) long polling с ajax это самый распространенный... есть ещё другой, названия не помню, но он применяется в каких-то особо изощрённых моментах..

Спустя 3 минуты, 25 секунд (7.08.2012 - 20:36) sharki написал(а):
Так для информации, если вы хотите насиловать сервак, то лучше это делать с бОльшим удовольствием wink.gif посредством лонг поллинга, но тут уже надо подумать мозгом. С лонг поллингом у вас отправляется один запрос раз в ~30 сек, и держится до обрыва связи браузером, что позволяет снизить отклик сервера, и не загружать воркерами.

А так как сказал Стас, используйте node.js но там не шуточки, и за памятью надо следить, но зато там есть такие плюшки как socket.io + асинхронность smile.gif

Спустя 1 минута, 14 секунд (7.08.2012 - 20:37) Игорь_Vasinsky написал(а):
теперь чтобы написать современный чат нужно учить ноду laugh.gif

Спустя 1 минута, 36 секунд (7.08.2012 - 20:38) sharki написал(а):
Игорь_Vasinsky
Не только чат smile.gif Когда прощупаешь, столько мыслей придет в голову)

Для серьезных ERP систем я бы его не использовал, опасно... Лучше ASP MVC3 + WCF вот это я называю серьезный подход)

Спустя 2 минуты, 28 секунд (7.08.2012 - 20:41) Игорь_Vasinsky написал(а):
меня пугает не постоянство синтаксиса только.
а так - отсутствие времени для обучения и практикума.

на работе хватает php+mysql+css+xhtml+js+jquery+ajax

Спустя 4 минуты, 45 секунд (7.08.2012 - 20:46) sharki написал(а):
Игорь_Vasinsky
Синтаксис, а точнее стандартные методы почти стабилизировались, на версии которые писал на 9ке заработали на хостинге на 6.05, это раньше, еще в 4ой версии я адски бесился, когда они еще не определились)

Так что не бойся, и давай делай следующие шаги к познанию крутых технологии и языков, на пыхе многого не сделаешь)

Спустя 3 минуты, 22 секунды (7.08.2012 - 20:49) Ramzes_Ra написал(а):
короче я решил не делать этот comet, слишком муторно для любителя.. сегодня весь день разбираю, но так и не понял, какие строчки нужно добавить в мой скрипт, чтобы он стал фоновым..

а вот про ускорение работы в 10-12 раз и про искусственную нагрузку на сервер меня заинтересовало...

Спустя 48 секунд (7.08.2012 - 20:50) inpost написал(а):
Игорь_Vasinsky
node.js + socket.io очень просты, это же с 10-ок дополнительных функций для стандартного JavaScript, и всё. Просто более новое и современное.

Спустя 11 минут, 10 секунд (7.08.2012 - 21:01) Ramzes_Ra написал(а):
Цитата
node.js + socket.io очень просты

ну я бы не сказал.. весь день разбирал, а так и не понял что мне добавить в свой код..

Спустя 4 минуты, 53 секунды (7.08.2012 - 21:06) Игорь_Vasinsky написал(а):
сначала установить сие добро, потом искать хостера с этим добром или брать VPS и ставить туда всё что нужно.

Спустя 1 минута, 5 секунд (7.08.2012 - 21:07) inpost написал(а):
Ramzes_Ra
Потому что ты установил сервер node? Поставил дополнение socket.io ? В итоге на выходе у тебя будет лишь 10 функций, смысл которых поможет мануал понять.
А вообще это адресовалось для Игорька, тут же надо очень хорошо JS знать прежде.

Спустя 1 минута, 14 секунд (7.08.2012 - 21:08) sharki написал(а):
Незачем искать хостера и т.п, все можно организовать у себя, в виде того же виртуально сервера, я уже скидывал, сам так сделал, сижу на 8ке, разрабатываю под ней, а в качестве виртуального сервера я использую виртуал бокс + убунту, коннектюсь по ssh

http://www.burdin.interwood.ru/2009/12/apa...rver-v-windows/

Спустя 1 минута, 3 секунды (7.08.2012 - 21:09) sharki написал(а):
Но если не дать себе поджопник, то и комп окажется говном, и нод сложен, ну вы поняли о чем я..

Спустя 4 минуты, 36 секунд (7.08.2012 - 21:14) Игорь_Vasinsky написал(а):
Цитата
Потому что ты установил сервер node? Поставил дополнение socket.io ? В итоге на выходе у тебя будет лишь 10 функций, смысл которых поможет мануал понять.
А вообще это адресовалось для Игорька, тут же надо очень хорошо JS знать прежде.


вообще надо глянуть что за зверь такой. но мне так нравится php что.... жаль его менять

Спустя 13 минут, 1 секунда (7.08.2012 - 21:27) Ramzes_Ra написал(а):
Игорь_Vasinsky, в твоей теме снижение нагрузки на сервер я так и не догнал, к какому итоговому коду дело пришло? Хотя я наверное уже перегрелся, весь день node разбирал о_ОООООООО

Спустя 3 минуты, 26 секунд (7.08.2012 - 21:30) Игорь_Vasinsky написал(а):
в первом посте все апдейты и сделаны.

но как и сказал Стас - кеширование не для чатов)))

Спустя 3 минуты, 33 секунды (7.08.2012 - 21:34) Ramzes_Ra написал(а):
Игорь_Vasinsky, headcache.php и footcache.php инклудить во все файлы вверх и вниз соответственно? И всё?

я реально перегрелся... я уж было начал думать, что для решения проблем с кэшем достаточно в htaccess прописать
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 3600 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
ExpiresByType text/html "access plus 3600 seconds"
ExpiresByType application/xhtml+xml "access plus 3600 seconds"
</IfModule>

Спустя 5 минут, 20 секунд (7.08.2012 - 21:39) Игорь_Vasinsky написал(а):
у меня в моих проектах одна точка входа - index.php
поэтому у меня тока в нём..

я не знаю как посредством сервера этот кеш будет строиться - мой вариант сокращает вес страниц в на 20% за счёт удаления переноса строк, табуляции и прочего хлама

Спустя 3 минуты, 41 секунда (7.08.2012 - 21:43) johniek_comp написал(а):
Ramzes_Ra
я тебе могу кинуть свой исходник чата с comet и прочими плюхами, но вряд ли тебе это поможет, т.к. это не php, ну если что ПМ

Спустя 12 минут, 5 секунд (7.08.2012 - 21:55) Ramzes_Ra написал(а):
Цитата
я тебе могу кинуть свой исходник чата с comet и прочими плюхами

это интересное предложение.. ну если что я в долгу не останусь.. в любом случае если он рабочий и у меня заработает, то я думаю, что смогу переделать под ещё другую свою задумку, где фоновая работа нужна..

Спустя 3 минуты, 3 секунды (7.08.2012 - 21:58) Игорь_Vasinsky написал(а):
смысл? человек вроде бы сам хочет реализовать

а ссылок на тему - море

google search on web

google search on this forum

Спустя 10 минут, 45 секунд (7.08.2012 - 22:09) Winston написал(а):
Можешь посмотреть чат от нашего Инвиза.

PS:Но у меня что-то сервер отрубался, когда его 2 человека тестили biggrin.gif

Спустя 14 минут, 12 секунд (7.08.2012 - 22:23) Ramzes_Ra написал(а):
Цитата
Можешь посмотреть чат от нашего Инвиза.

очень подробно и чётко в установке... Но одна маааленькая проблемка.. он не работает.. smile.gif соединение с БД я своё поставил само собой.. страничка с сообщением есть, но по нажатию Send ничего не происходит

Спустя 2 минуты, 59 секунд (7.08.2012 - 22:26) Winston написал(а):
jquery подключил? посмотри консоль ошибок

Спустя 4 минуты, 50 секунд (7.08.2012 - 22:31) Ramzes_Ra написал(а):
Цитата
jquery подключил?

а вот слона я забыл.... smile.gif

теперь работает... абалдеть..

а он уже как бы полностью готовый или для интеграции на любой сайт что-то доделать нужно?

Спустя 1 минута, 36 секунд (7.08.2012 - 22:32) Winston написал(а):
Цитата (Ramzes_Ra @ 7.08.2012 - 23:31)
а он уже как бы полностью готовый или для интеграции на любой сайт что-то доделать нужно?

Да можешь интегрировать, но

Цитата (Winston @ 7.08.2012 - 23:09)
PS:Но у меня что-то сервер отрубался, когда его 2 человека тестили


Спустя 2 минуты, 34 секунды (7.08.2012 - 22:35) Ramzes_Ra написал(а):
Цитата
PS:Но у меня что-то сервер отрубался, когда его 2 человека тестили

тогда я вообще ничего не понимаю..))

Ну вот скажем Comet сделан для того, чтобы снизить нагрузку на сервер (грубо говоря).. В данном случае он выполняет совершенно другую роль)) какой в нём смысл?))

и ещё.. я так понял, он реагирует на добавление в таблицу, но не редактирование существующего поля, да?((

Спустя 6 минут, 17 секунд (7.08.2012 - 22:41) Ramzes_Ra написал(а):
Цитата
PS:Но у меня что-то сервер отрубался, когда его 2 человека тестили

хм.. я сейчас на локальном сервере в 4-х браузерах протестил одновременно, всё нормально.. это не равносильно?

Спустя 9 часов, 39 минут, 14 секунд (8.08.2012 - 08:20) johniek_comp написал(а):
хаха, комент инвиза в коде
Цитата
// вантуз для пробивки буфферов


Ramzes_Ra
Свернутый текст
чат на asp.net, вряд ли ты его поставишь сам, я не готовый вариант тебе предлагаю, а на код посмотреть, как реализовано
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.