Как создать веб-интерфейс XMPP с помощью PHP и JQuery?

Я ищу разработать веб-сайт, на котором есть чат между посетителем веб-сайта и администратором веб-сайта.

Я знаю, что лучший способ сделать это – использовать XMPP, но у меня нет опыта его использования. Я хочу реализовать это с помощью PHP.

Я загрузил XMPPHP, и я редактировал пример для отправки сообщения клиенту Google Chat в GMail, но когда я отвечаю, Google сообщает мне, что другой конец не получил сообщение.

До настоящего времени наиболее информативным учебником является http://www.ibm.com/developerworks/xml/tutorials/x-realtimeXMPPtut/, но я не понимаю, зачем мне устанавливать «Openfire», и я не хочу создавать веб-сайт на моей локальной машине.

Может кто-нибудь, пожалуйста, скажите мне, что мне нужно (и что более важно, почему), чтобы настроить этот проект, чтобы я мог начать строить для него код?

Судя по комментариям к другим ответам, я расскажу вам, почему и что-то в этом роде, но не даю вам решения, потому что я вижу тонну решений на боковой панели «Related». Вам нужно будет выбрать правильный, и, зная «почему», вы сможете принять обоснованное решение.

Чтобы чат чувствовал себя правильно, в ответах должна быть некоторая непосредственность. Задержка во времени будет заметна для пользователей с течением времени и даст ощущение несвоевременности. Чтобы немедленные или «реальные» ответы работали в браузере, требуется постоянное соединение, чтобы при появлении новой информации он сразу же появлялся.

Стойкие соединения в браузерах сложны из-за характеристик запроса / ответа HTTP. В работе есть спецификации для обеспечения постоянных соединений с браузерами, но эти браузеры не являются повсеместными. В будущем постоянные подключения будут поставляться с помощью WebSockets и SPDY , оба из которых доступны в последних версиях Chrome, Safari и FireFox с небольшим отставанием IE.

Другим вариантом постоянных соединений является XMPP . XMPP – это протокол, используемый для клиента чата Jabber. Поскольку это реализация с открытым исходным кодом, она была перенесена на многие другие виды использования. Существуют библиотеки JavaScript, которые позволяют подключать браузер к сокету XMPP и прослушивать новые сообщения. Метод, который я видел в прошлом, – отправить сообщения на веб-сервер, а затем сообщить веб-серверу XMPP-серверу о новом сообщении, которое затем передает новое сообщение всем пользователям. Однако для этого требуется сервер XMPP, который повышает сложность системы.

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

  • Adobe Flash Socket
  • ActiveX HTMLFile (IE)
  • События с сервером (Opera)
  • XHR с многострочной кодировкой
  • XHR с длинным опросом

Эти более старые методы и WebSockets поддерживаются библиотекой Juggernaut .

UPDATE Juggernaut устарел от поддержки , по уважительной причине: современные браузеры поддерживают постоянные соединения из коробки (за исключением IE, конечно) через спецификацию Server-Sent Events (SSE). Обратная совместимость теперь обрабатывается полиполками ( что является полиполком? ), И, как отмечает примечание к устареванию, есть несколько хороших, которые приносят SSE в устаревшие браузеры.

Там есть масса ресурсов, которые могут помочь вам в этом. Быстрый поиск Google вызывает следующее:

http://sixrevisions.com/tools/10-free-website-chat-widgets-to-make-your-site-interactive/

http://www.phpfreechat.net/

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-simple-web-based-chat-application/

Приложения мгновенных сообщений должны быть в режиме реального времени. Веб-сайт работает с протоколом HTTP, который использует метод запроса / ответа. Один из способов сделать это – ОПРОС. отправьте запрос на новые ожидающие сообщения для пользователя на сервер. Сервер должен иметь возможность различать сообщения, которые были отправлены, и те, которые еще должны быть доставлены. этот метод называется опросом. Ваш браузер постоянно просит сервер отправлять любые ожидающие сообщения сообщения. Но это может отрицательно повлиять на пропускную способность, а также слить аккумулятор (в случае доступа к веб-сайту с помощью смартфона). Лучше всего использовать XMPP-сервер.