Нужны добровольцы для тестирования



Доброго времени суток!
Буквально месяц назад начал разработку плагина «xChat», судя по названию Вы уже поняли что речь идет о плагине чата, аналогов на ЛС возможно много и т.д. но не в этом суть. Сейчас плагин находится на этапе тестирования и требуется ваша помощь. Все найденные ошибки, косяки и т.д. прошу писать сюда в комментарии. За одно будет проводится проверка на нагрузку сервера и т.д.
Спасибо за помощь тем кто откликнулся!

Небольшая инструкция…
1. Адреса сайта ls.xdev.kz
2. Регистрация без подтверждения
3. Чат позволяет вести диалог только с 1 человеком, то есть приват чат.
4. Для того чтобы добавить кого либо в контакт лист нужно добавить его в друзья (разрешено общаться только с друзьями)
5. Все найденные ошибки, глюки и все что в общем может показаться не верным прошу писать сюда, желательно приложив скрин.
6. Все сообщения в чате хранятся ровно 24 часа, чтобы не засорять базу.

И так теперь не большое описание плагина.
— Плагин на AJAX (jQuery 1.7+)
— Может сохранять положение окон, при перезагрузки или переходе страницы (хранит все в куках)
— Повторяющиеся запросы в БД кэшируются (для уменьшения нагрузки)
— Имеется звуковое сопровождение (входящее сообщение, контакт онлайн, контакт оффлайн, ошибка в AJAX)
— Имеется флаг о прочтении сообщения получателем, все не прочтенные сообщения подсвечены желтым цветом
— Окно чата может сворачиваться
— Всплывающее окна при изменении статуса контакта, и при входящем сообщении если окно чата было свернуто
— В заголовок страницы вписывается кол-во не прочтенных сообщений
— В контакт листе помечаются люди те кто в онлайн
UPD:
— Список активных контактов (активные контакты выводятся на самый верх) (JS)
— Поиск по списку контактов (JS)
— Убрана «лишняя» анимация (JS)
— Оптимизирована нагрузка на сервер (JS + PHP)
— Изменены интервалы запроса (на более умеренный) (JS)
— — Запрос контакт листа = 40с
— — Получение сообщений активного контакта = 10с
— — Получение всех не прочтенных сообщений = 10с
— — Отправка отчета о доставке каждый цикл по 10 сообщений с интервалом ~1-2с

Не много скринов для наглядности:
Окно с контактами:


Полный вид чата:


Свернутый:


В планах:
— Заставить мигать окно браузера в случае если окно браузера свернуто и пришло новое сообщение (если есть решение как сделать пишите :) )
— Запретить повторное появление окна чата на других страницах (если открыты не сколько страниц одного сайта) (если есть решение как сделать пишите :) )
— Добавить возможность работы на Node.js (в разработке)

16 комментариев

avatar
Насколько я понял вы делаете аналог cometchat. Сам пользуюсь им вот уже больше года, например 60 человек онлайна очень сильно напрягают базу данных постоянно просматривая, а не пришло ли что-нибудь новенькое. Сейчас с горем пополам начинаю использовать APE, что конечно разгружает базу. Это я к тому что наличие работы на Node.Js это будет несомненным плюсом.

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

И какие планы по стоимости?
avatar
не знал о cometchat, но посмотрел, он уж больно громоздкий, а у меня что то по проще всего 1 таблица с меньше десятка полей + используется кэширование то по сути не должно быть каких то проблем с нагрузкой не должно быть, хотя это еще надо проверить.
Насчет node.js сейчас рассматриваются все оптимальные вариант по его внедрению в плагин, но пока что на второй план ибо пока не каждый может у себя на хосте его разметить.
Насчет запрета, просто если открыть чат в 2х окнах будет удваиваться нагрузка с 1го человека т.к. запросы на проверку будут идти с обоих окон, не говоря о том что их может быть гораздо больше. Но этот вопрос должен решить если сделать чат через node.js
Цена плагина точно будет не дорогой, думаю не больше 20$ может и того меньше. Но это пока ориентировка насчет этого ничего конкретного сказать не могу.
avatar
Если будет на Ноде, то мне интересно.

Одна таблица? В том же кометчате тоже одна для истории (поиск по этой таблице когда в ней 200 тысяч записей начинает работать медленно, даже с индексами) + ещё одна для статусов (пользователь может выставить статус что он занят, невидим или оффлайн, поскольку это плагин к ЛС, то можно эти поля добавить в таблицу пользователя). Его можно сделать минимальным примерно как у вас или в фейсбуке.

По чату в одном окне, я понимаю вашу мысль про нагрузку, но это жуткое ограничение, я например частенько открываю много вкладок и это меня честно говоря огорчит.
avatar
По сути дела это чат, место для быстрого обмена сообщениями, обменялись по общались и все но этом забыли, например в плагине по умолчанию выставлено удаление старых записей после отправки 24 часа, и думаю нет особого смысла хранить до посинения пульса всю переписку — но это так сугубо мое личное мнение по поводу подобных чатов.
avatar
Плагин годный, но его нужно очень-очень оптимизировать и продумать, чтобы ускорить работу. Экспериментальным путем выяснено, что если написать за минуту около 150 сообщений, то внезапно возникают дикие тормоза на стороне пишущего и читающего, особенно лагает у читающего, особенно если время от времени(1-3 раза в секунду) тыкать на ник написавшего.
avatar
если написать за минуту около 150 сообщений
а зачем писать по 150 сообщений в минуту?
avatar
ну всякое бывает
avatar
Насчет «лагов» скорее всего это из-за JQuery эффектов, как вариант можно убрать всю возможную анимацию с чата, и как то оптимизировать отправку статусов сообщения или же вообще напрочь от нее отказаться?
avatar
анимацию вообще вырезать. статусы они конечно нужны, но если биться за стабильность и оперативность — то лучше без статусов, потому как если будут статусы и полный фарш, но все будет лагать — это оцтой. а если все будет отлично, но не будет статусов — народ потерпит.
avatar
1. Очень часто запрашивается список контактов, на каждые два запроса новых сообщений идет запрос списка контактов. Можно реже.
2. Чтобы общаться нужно держать постоянно открытым список контактов. Допустим у меня 50 друзей, и каждый раз когда я хочу написать человеку с ником на А я поднимаю список вверх, а когда хочу написать человеку с ником на Z буду прокручивать вниз? В том же кометчате переписка с каждым человеком это отдельное окошко. Объединение всех переписок в одно окно это круто, но если в этом окне будет список только тех с кем я сейчас переписываюсь (аля qip), а список всех моих друзей отдельно, притом чтобы они независимо друг от друга сворачивались
3. у вас не быстрый сервер? Посмотрел тайминги запросов новых сообщение 200-600мс, это безумно много
avatar
1. Согласен
2. Подумаю что можно сделать
3. На сервере сейчас ведется бекап и поэтому тормозит, скоро должен стать более стабильней
avatar
«более стабильнЫМ»
avatar
Все кого интересует судьба чата, снова прошу принять участие в тестировании и обо всех багах прошу написать сюда. Заранее спасибо за отклик.
  • Rix
  • 0
avatar
А можно убирать не в сети контакты? Типа как в квипе все/активные… А можно в конфиге выставить срок хранения сообщений год например?
avatar
у меня так и есть контакты делятся на активные и все, и так же можно указывать в конфиге сколько хранить сообщения, по умолчанию 24 часа(указываются в часах)
avatar
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.