ErickSkrauch
@ErickSkrauch

Как реализовать приватный чат на сайте?

Имею тематический проект с элементами соц сети. Самое главное, как вы понимаете, это чат между людьми. Я долго смотрел в сторону dklab_realplexor, но сейчас что-то сомневаюсь в том, что оно мне подойдёт.

Итак, как я хочу сделать:
  1. При заходе на сайт пользователь подключается к серверу, желательно через сокеты и загружает все непрочитанные сообщения.
  2. При поступлении нового сообщения пользователь получает на соединение это сообщение, а так же сообщение заносится в базу (MySQL, хотя можно попробовать и MongoDB).
  3. Как только пользователь загрузил сообщение он в тот же сокет посылает статус "Принято", что бы не получилось состояние, когда пользователь отключился, но сервер ещё не узнал об этом.


Это план того, как я вижу это в работе. По факту же я даже не совсем представляю как это реализовать :)

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

Из возможных реализаций рассматриваю или php модули, или node реализацию, но на ноде я слишком мало писал, так что сам через известный socket.io не напишу (по крайней мере я до сих пор не могу представить, как отправлять пакеты конкретному адресату и тем более нескольким (в случае нескольких окон)), так что на ноде желательно готовое и допиливаемое решение.
  • Вопрос задан
  • 3951 просмотр
Пригласить эксперта
Ответы на вопрос 2
Вам в помощь node.js и angular.js
Пример можно подсмотреть на GitHub
Ответ написан
@Levhav
Возьмусь за разработку проектов любой сложности.
Можно попробовать этот комет сервис, всё что вы описали там можно реализовать без проблем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы