Най-добрият начин за показване на известия и съобщения НА ЖИВО на уеб страница?

Интересувам се от наистина добър начин за изпращане на незабавни съобщения като meebo, facebook и myspace, също и за известия на страница. Пример на моя сайт сега, когато потребител получи ново имейл съобщение, коментар за снимка, коментар в профила, покана за приятелство, някои други неща, той ще получи уведомително съобщение и връзка на страницата, на която се намира, използвайки jQuery и AJAX.

Вярвам, че в голям мащаб това не е най-добрият начин да го направя, тъй като моят jquery код ще трябва основно да изпълнява PHP скрипт, за да прави запитвания към таблицата mysql на всеки 30 секунди или така за всеки потребител, който има отворена страница с този скрипт бягане. Бих искал в крайна сметка да добавя някакъв вид незабавни съобщения като facebook в лента за чат в долната част на екрана, ако мога да намеря ефективен начин да го направя.

Чувал съм термините Comet и HTML5 WebSockets, но не съм сигурен дали това са решенията, които трябва да търся за такава функция? Бих искал да запазя минимална честотна лента и изпълнението на заявка на всеки няколко секунди не изглежда много ефективно на сайт с голям трафик.

Ако знаете някои добри решения, моля, обяснете малко как работят


person JasonDavis    schedule 15.01.2010    source източник


Отговори (4)


Мисля, че Facebook използва XMPP за своя чат, така че го разгледайте.

XMPP е

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

Бихте инсталирали отделен сървър за обработка на съобщения и в приложението си ще внедрите клиент с една от наличните библиотеки.

person Gordon    schedule 15.01.2010

Търсите сървър "comet". Тъй като говорите за PHP, най-доброто ви решение би било SaaS решение, като например WebSync On-Demand , тъй като PHP има проблеми с мащабирането, когато става въпрос за голям брой едновременни връзки, които се държат отворени. Вижте също този въпрос.

person jvenema    schedule 20.01.2010

Можете ли да имате споделена опашка за съобщения, която ajax може да прави заявки? Може би това е php скрипт, който съхранява по-голямата част от съобщението в memcached (и евентуално пише в db в случай на повреда).

Не съм сигурен, но съм любопитен да чуя други решения ...

person mr-sk    schedule 15.01.2010

Основният проблем е, че трябва да внедрите Comet сървър (т.е. да внедрите Server Push). Стандартните уеб хостове и Apache не ви позволяват лесно да направите това. Друго хоствано решение (освен Web Sync) е Goldfish Server. В момента безплатно.

person cmroanirgo    schedule 28.01.2010