Igor P
Заказчик Igor P RM-dg | FL.RU

Igor P

На сайте 10 лет и 6 месяцев (заходил 4 года 10 месяцев 28 дней назад)
0
114
Рейтинг
114
Все (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 предоставлю.

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

Прошло времени с момента публикации: 7 лет 11 месяцев 23 дня 1 час 2 минуты
Раздел: Программирование / Веб-программирование

Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».