<rst>RU::12-Примеры::Готовый чат на JavaScript</rst> <rst>Header: Пример чата на JavaScript</rst> ===== Готовый чат на JavaScript для сайта - chat плагин ===== Реализовать чат на html без серверной стороны конечно не возможно. Но не обязательно для каждого чата писать chat server самому, можно воспользоваться готовым решением. И не смотря на то, что это казалось бы очевидно набирается почти 800 запросов "html chat" в месяц и это только к Яндексу. В конце статьи прилагается файл на javascript реализующий простой чат, его достаточно вставить в html код страницы, и чат готов. Вся серверная сторона уже реализована. ===== Готовый движок чата на JavaScript для любого сайта. ===== Как говорилось, выше реализовать html чат без серверной части работать не будет. Для работы чата требуется комет сервер который будет отправлять push уведомления всем участникам чата. Но для этого чата комет сервер предоставляется бесплатно, вам даже регистрироваться там не обязательно. В таком случаи чат будет общий для всех сайтов которые его вставят. Это даже не плохо, особенно для сайтов с небольшой посещаемостью. А те, кто хотят иметь чат только для своего сайта или своей группы сайтов должны [[https://comet-server.ru/%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB/10|зарегистрироваться]] и бесплатно получить [[comet:dev_id|идентификатор разработчика]] на comet-server.ru, а затем его указать в коде инициализации чата ( вместо dev_id: 15 указать свой полученный id). ===== Встраиваем чат в html вашего сайта. ===== В HTML код вставляем вот такой скрипт. <file html chat-plugin.html> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" ></script> <script type="text/javascript" src="https://comet-server.ru/CometServerApi.js" ></script> <script type="text/javascript" src="https://comet-server.ru/doc/html_chat.js" ></script> <link rel="stylesheet" type="text/css" href="https://comet-server.ru/doc/html_chat.css"></link> <!-- Осталось настроить сам чат и запустить, для этого пишем небольшой скрипт. --> <div id="html-chat"></div> <style> /* Здесь настроим css стили для чата*/ .holder-html-chat{ border: 1px solid #ccc;padding:10px;background-color: #fff;width: 600px;} .html-chat-history{ max-width: 600px; overflow: auto;max-height: 900px; border: 1px solid #ccc;padding: 5px;} .html-chat-js-name{ margin-top:10px; } .html-chat-js-input{ max-width: 600px;max-height: 100px;width: 600px;margin-top:10px; } .html-chat-js-button-holder{ margin-bottom: 0px;margin-top: 10px; } .html-chat-js-button-holder input{ width: 220px; } .html-chat-js-answer{ float:right; } .html-chat-js-answer a{ color: #777;font-size: 12px; font-family: cursive;} .html-chat-js-answer a:hover{ color: #338;font-size: 12px; font-family: cursive;} .html-chat-msg{ margin: 0px; } </style> <script> /** * Чат работает на comet-server.ru * По любым вопросам обращайтесь support@comet-server.ru или на сайт comet-server.ru */ $(document).ready(function() { // Запуск api комет сервера CometServer().start({dev_id: 15 }) // Идентификатор разработчика на comet-server.ru // Запуск чата. Передаём ему элемент в котором надо создать окно чата. htmljs_Chat_Init( $("#html-chat") ) }); </script> </file> <html> <iframe src="https://comet-server.com/doc/CometQL/htmlChat/index.html" width="910px" height="1060px"></iframe> </html> <note tip>Если вы хотите вставить этот чат себе на сайт, но не "как есть", а с некоторыми изменениями, то вероятно вам будет полезна [[comet:simple-chat-example|статья-пример чата похожего на этот чат]]</note> ===== История сообщений для чата ===== Можно до 99 последних сообщений чата загружать из истории комет сервера. Для включения сохранения истории сообщений в канале чата надо выполнить CometQL запрос в online командной строке для CometQL на странице в разделе Real time monitor. <code sql> INSERT INTO pipes_settings ('name', 'length') VALUES ('web_chat_pipe', 10); </code> ==== Очищение истории сообщений чата ==== Для очищения истории сообщений в чате надо выполнить CometQL запрос в online командной строке для CometQL на странице в разделе Real time monitor. <code sql> DELETE FROM pipes_messages WHERE name = 'web_chat_pipe'; </code> <note important>Обратите внимание на разницу в командной строке CometQL: на страницах с документацией демо доступ для dev_id = 15 а в разделе Real time monitor командная строка для управления вашим личным dev_id</note> ====== Другие реализации чатов ====== В данной статье рассмотрели публичный чат без регистрации. * Готовый [[https://chatlab.pro/|виджет чата для социальной сети]] * Если вам нужен чат для личного общения пользователей между собой (общение в диалогах один на один) то вам больше подойдёт [[comet:star-comet-chat|чат плагин личной переписки между пользователями]] * Есть так же учебный пример [[comet:chat-with-authorization|скрипта чата с авторизацией]] * Ещё один простой пример [[comet:simple-chat-example|чата похожего на этот чат]] <note>Если вы не собираетесь сами разрабатывать уникальный чат с каким-то необычным функционалом, а хотите просто вставить на свой сайт готовый виджет чата то рекомендуем вам ознакомится с [[https://chatlab.pro/|сервисом чатов]], позволяющим всё сделать без программирования.</note>

Обсуждение

Дмитрий, 2015/11/06 09:57

Добрый день! Все работает хорошо, но не получается сделать отправку сообщения в чате конкретному пользователю. Как это можно реализовать?

Понял что надо отправить hash и id пользователя, но дальше не знаю…

    $(document).ready(function()
    {
       // Запуск api комет сервера
       CometServer().start({dev_id: 598, user_key:"hash25", user_id:"25" }) // Идентификатор разработчика на comet-server.ru
 
       // Запуск чата. Передаём ему элемент в котором надо создать окно чата.
       htmljs_Chat_Init( $("#html-chat") )
    });
Trapenok Victor, 2015/11/06 11:39

После того как вам удастся авторизоваться на комет сервере с использованием hash и id пользователя вы сможете отправлять сообщения пользователю через CometQL

Для того чтобы отправить сообщение через CometQL выполните следующий запрос

INSERT INTO users_messages (id, event, message)VALUES (25, 'newMsg', 'text');

А для того что бы получить это сообщение в Js надо добавить следующий код

CometServer().subscription("msg.newMsg", function(p)
{
    alert(p.data)
});
Денис, 2016/02/21 10:59

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

Trapenok Victor, 2016/02/22 03:23
если я чат поставлю толюди которые создадут его на другом сайте а напишут будут видны их сообщения на другом сайте?

Чтоб в ваш чат писали люди только с вашего сайта вам надо зарегистрироваться и в настройки чата передать полученый после регистрации dev_id

Sherzod Akhmedov, 2016/11/26 07:20

как это подключить мой сервер

Егор, 2018/08/10 15:02

Нагуглите «как создать свой сервер с IIS» и разместите html-файл на сервере.

Егор, 2018/08/10 15:00

А как сделать прокрутку сообщений не вниз, а вверх?

Ваш комментарий. Вики-синтаксис разрешён:
T L P᠎ R V