Веб-чат в Интернете?

Я бы хотел создать систему чата в режиме реального времени. Любые предложения о том, как реализовать это с помощью jQuery, какие-либо проблемы, на которые нужно обратить внимание, и что это за комета, о которой я продолжаю читать?

В идеале я бы хотел поддержать около 5000 одновременных разговоров.

Комета, также известная как Ajax Push, часто упоминается как «Обратный AJAX». Вместо того, чтобы получать информацию с сервера через регулярные промежутки времени, данные пересылаются с сервера на браузер, когда это необходимо. Для этого требуется открытое соединение, для которого существует несколько реализаций.

Я рекомендую вам использовать APE . Вот демонстрация: http://www.ape-project.org/demos/1/ape-real-time-chat.html

  • Преимущество: он будет очень отзывчивым и в режиме реального времени.
  • Недостаток: вам нужно настроить сервер APE на своем веб-сервере.

Комета – это «push» tecnology, созданная для того, чтобы избегать клиента (код javascript), чтобы постоянно опробовать сервер. Это может вызвать проблему с полосой пропускания, потому что вам нужно создать (возможно) новое TCP-соединение, затем обратиться к http-серверу, он запускает некоторую серверную логику и затем отправляет ответ клиенту. Если комета, если сервер решает, что вы должны получить некоторую информацию (например, новое сообщение чата), он напрямую отправит ее клиенту.

Существует несколько различных вариантов реализации, вы можете начать здесь .

простейшая реализация tecnique – это скрытый iframe, но я бы расколол длинный опрос, который намного более управляем.

Еще одна вещь, посмотрите на веб-сайты HTML5 , которые могли бы стать интересным решением вашей проблемы (не совсем совместимо с текущим браузером)

Проверьте Node.js и nowjs для node.js. Node.js помогает вам создавать очень эффективные серверы с использованием JavaScript на стороне сервера, а nowjs – это библиотека, которая позволяет создавать веб-приложения в режиме реального времени. Существует даже пример скриншота, который объединяет основное приложение чата в 12 строках кода.

Вы также можете проверить Socket.io, которая является другой библиотекой узлов, которая помогает вам создавать приложения реального времени, абстрагируя различные механизмы транспорта и предоставляя единый интерфейс для кода (поддерживает WebSockets, Flash Sockets, длительный опрос AJAX, JSONP Polling и Forever IFrames ).

Я понимаю, что вы отметили свой вопрос PHP, но если вы серьезно подумываете о создании масштабируемой системы с минимальными усилиями (относительно говоря), то изучение Node.js стоит вашего времени (и кривая обучения не является крутой, поскольку вы, вероятно, уже знаете JS).