Igor P [RM-dg]

RM-dg

Igor P [RM-dg]

На сайте 7 лет и 10 месяцев (заходил 2 года 3 месяца 4 дня назад)
+ 1  0  - 0
0
114
Рейтинг114
114
Отзывы+ 1  0  - 0
+ 1  0  - 0
Все (1)       Заказы (1)        Вакансии (0)       Конкурсы (0)
Разместить заказ
21 Мая 2016
По договоренности
кратко, на чем должна работать:

дано сервер: nginx -> node.js (socket.io) и две базы данных Redis и PostgreSQL
сайт на php, сама переписка будет встроена как Frame

как видится функционал:
в postgreSQL след. таблицы:

1. users: 'id', кука 'uid'..etc
2. user_message_dialog: hash (формируется как диалог между 2user), count_messge (кол-во сообщений в переписке), unread(user1), unread(user2) соответственно не прочитано первым или вторым юзером) ..etc
3. user_block: id_user, num_msg, time_msg, block_msg
(в поле num_msg кол-во адресатов которым пользователь может отправить сообщения за 24 часа, в поле time_msg дата отправки последнего сообщения, block_msg пользователь вообще не может отправить сообщение)
4. user_msg: hash, msg, dtime

также в этой базе еще аналогичная таблица user_msg_archive

сам функционал (на примере отдельного пользователя):
redis пуст
пользователь зашел на сайт, авторизовался, после авторизации заполняется
redis данными из "user_message_dialog", только в части новых (непрочитанных сообщений), т.е. hash
и unread (для этого пользователя).

пользователь зашел в раздел переписка:
из postgreSQL выводятся все его диалоги с другими пользователями.
справа Frame окна переписки.

пользователь нажал на диалог:
в Redis загрузилось из postgres 20 сообщений и отобразилось пользователю как список сообщений
Дата/время, имя, тело сообщения, статус сообщения.

пользователь прокрутил сообщения до 20-го, выполнился запрос и подгрузились из postgreSQL след. 50
сообщений (Ajaxом), ВАЖНО!! Но не загрузились в Redis и так далее, пока пользователь не
дойдет до последнего сообщения, далее проверяется таблица "user_msg_archive".

пользователь пишет сообщение: сообщение в реальном времени (если второй пользователь online)
доставляется адресату (socket.io), и пишется в Redis,
пока пользователь в online сообщения пишутся в Redis. (hash -№диалога, msg – тело сообщения, read/unread)

скрипт по хрону проходит по Redis (или можете предложить другой вариант) и если пользователи не в онлайн переносит
сообщения (прочитано/не прочитано, дату, в postgres, удаляет все сведения о пользователях не в онлайне из Redisa.

Не интересна подобная реализация на ajax или php.... наигрались (, дизайн тоже не интересует, только функционал.

Более подробно тех. задание "по шагам" предоставлю исполнителю

Оплата по факту (вебмани с протекцией, идеально гарант сделка или личная встреча в кафе-офисе с демонстрацией + оплате).
Сервер для теста и работы с голой системой Debian предоставлю.

Сроки Ваши (но не пара месяцев)
Игорь

Прошло времени с момента публикации: 5 лет 3 месяца 29 дней 16 часов 58 минут
Раздел: Программирование / Веб-программирование