Pull to refresh

Comments 18

Для чего ботам "мультилогин"? Они ведь могут спокойненько крутиться на стороне сервера.

В принципе это так. Но если бы они были на стороне клиента, они могли бы общаться.

Я так и не понял, почему сторона клиента обязательна. Всё это решается на сервере модулем, который следит за активностью и реагирует по заданным правилам. Например, зашёл аноним в чат — взять из пула бота и от его имени написать сообщение со стороны сервера. Пример упрощён, но показывает идею.

вариант с ботом на стороне клиента выглядит как-то попроще, а в вашем случае пришлось бы расковырять веб-сервер, потом их ведь надо и убирать оттуда еще.
я видел некоторые решения для мультилогина, но склонен не доверять их безопасности.

Включение/выключения бота на сервере можно решить флагом функциональности. Отягощать клиент лишним код довольно странное решение. Как и городить "мультилогин". Это ещё и небезопасно, поскольку данные бота могут угнать, так как они доступны на клиенте. А если вы вдруг захотите добавить какое-то более сложное поведение (например, взаимодействие с базой данных или внешним сервисов), придётся всё переделать. В случае с реализацией на сервере вы можете добавить информационных ботов, как например на Twitch.

Мне много раз говорили что я пишу велосипед, но такого на просторах рунета еще не было.

Discord же есть.

Как у вас реализован такой момент:
есть 100 сообщений, пропадает интернет, приходит 107-e сообщение? делаете запрос 100 > get < 107?

на сокетах реализовано. думаю все пропущеные сообщения придут с подключением интернета, хотя я не уверен. вопрос как будто на собеседовании.

по технике ответов нету, позиционирование чата не понятна.

ну я не позиционирую веб-чат как убийцу вк или телеграмма. просто небольшой чат со своим комьюнити, которым нравится общаться в таком формате.
Я проверил ваш вопрос. И так, переписка реализована на socket.io без всяких оговорок. В вашем случае все сообщения были доставлены в правильном порядке, но продублировались. Я исправил этот баг сделав проверку на id сообщения. Я ответил на ваш вопрос?
Наблюдаются перебои в работе из-за DDOS-атаки.
А можно сделать чат только на чтение для неавторизованных? Не хочется регистрироваться непонятно где, сразу с порога вылетает окошко с регистрацией.

Ссылка на код битая. Можно его на гитхаб выложить?
UPD: ссылка на readonly тоже не работает. Основная страничка не лежит.

это временные неполадки, ссылки правильные
Из статьи не понятно следующее:
  1. На чем написан сайт (бэкенд? фронтенд?)?
  2. А что за БД стоит? MySql, Oracle?
  3. Как хранятся сообщения в бд (в которых еще не просто текст, а фотка или еще что-то)?
  4. Как хорошо справляется движок со стороны производительности с выводом и отображением сообщения чата с картинкой допустим объема в 10МБ? 15МБ? 30МБ?
  5. Что будете делать когда таблица с сообщениями разростется?
  6. Если БД MySQL, то со временем, когда БД станет очень большой, то, возможно, будут проблемы с производительностью. Что вы собираетесь делать в этом случае?


Кроме того:
  1. 110 раз Ошибка в консоли браузера — Uncaught ReferenceError: editAnketa is not defined at HTMLDivElement.onclick (readonly:122)
  2. В header есть script src="/js/jquery.js". А почему не с CDN?
  3. В header есть link rel=«stylesheet» href="/css/bootstrap.min.css". А почему не с CDN?
  4. В main2.js есть функция getCursorXY. А зачем вам понадобилось получать эту информацию? Шпионим? (Мой внутренный параноик не дает покоя)
  5. В main2.js 2 раза обьявляется $(document).ready(function()
  6. Слишком много спама в консоли бразуера от скрипта main2.js. Это сообщение было вызвано 6 раз среди кучи других — (6) main2.js:1087 out
  7. Слишком много спама в консоли бразуера. Оказывается еще сообщения пользователей тоже выбрасываются в консоль.
  8. Слишком много спама в консоли бразуера типа — {to: «room», id: XX} {id: XXXX, user_id: XXX, user_name: «XXXX», user_avatar: "", user_sex: «female», …}
  9. В HTML разметке я обнаружил data-user-id=«714». Думаю в разметке многих местах есть подобного рода штука. Что если я поменяю на свое значение? А что если я смешаю все данные? Есть проверка на валидность данных?
  10. Пока писал в консоли стало уже 185 ошибок и дофига других сообщений
  11. В HTML разметке есть: body style=«height:100%;».
    Напомнило это
    image

1. Бэкенд написан на node.js, express и socket.io. Фронтенд — bootstrap, jquery, jquery-ui.
2. MySQL.
3. В виде HTML.
4. Есть лимит на размер входящего файла. Большие изображения урезаются до 800px (в прочем я думаю увеличить это число).
5. Почищу старые записи.
6. Почищу таблицу если будут проблемы, возможно введу дополнительные индексы.

Теперь остальное:
1, 10: Вчера были перебои в работе сервера скорее всего ошибки вызываны периодическими падениями сервера.
2, 3: Не вижу в этом необходимости.
4. В одном случае помещаю всплывающую подсказку рядом с мышкой, в другом — ссылку для цитирования.
5. Я как-то объединил два файла в один. Скорее всего осталось оттуда. В прочем, в этом нет ничего страшного.
6, 7, 8: Может быть. Не думал, что это будет кому-то мешать.
9. Ничего страшного не случится.
Sign up to leave a comment.

Articles