Уведомление о новом входящем сообщении

Статус
Закрыто для дальнейших ответов.

KDES70

Well-Known Member
Регистрация
16.02.2012
Сообщения
73
Ребят, подкиньте идеи, как организовать уведомление о новом входящем сообщении в виде:
Мои Сообщения(+X шт.) - где X, число новых непрочитанных сообщений!
p.s.
уже сделал систему обмена сообщениями между пользователями с помощью БД MySQL....... теперь хочу научиться уведомлять о новых сообщениях......
зараннее благодарен вам за советы!

БД:
id
id_user
date
id_autor
autor
text
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
Если примитивно - то через setTimeOut в js. Если качественно - то смотрим в сторону работы с сокетами.
 

AngelGabriel

И имя мне - легион
Регистрация
23.11.2008
Сообщения
778
Выше головы не прыгнешь.
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
[member=KDES70], значит нужно учить) Как ты себе представляешь обновление страницы в php? Тут суть в том, что если использовать таймаут - раз в заданное время будет дергаться определенный скрипт, проверяющий наличие сообщений/новостей/прочей лабуды. Socet-ы однозначно грамотнее, даже с какой-то стороны проще в обращении, но придется потренироваться и понять суть работы. Мануалы в помощь)
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
1. Как с такой структурой таблици выбрать только не прочитанные (новые сообщения)?
2. Реализовать проще всего через ajax упомянутой уже фукцией запроса через таймаут, но реализовать нужно грамотно, ато скрипт повиснет.

Проще будет используя jquery. При этом четкий скрипт реализации сложно посоветовать, все нужно делать под ваш сайт. Поможет для начала литература по аjax, с условием того что хоть немного знакомы с JS.
 

KDES70

Well-Known Member
Регистрация
16.02.2012
Сообщения
73
Socet-ы однозначно грамотнее, даже с какой-то стороны проще в обращении, но придется потренироваться и понять суть работы. Мануалы в помощь)
можешь дать почитать что то, а то google мне чипсеты выдает)))
 

KDES70

Well-Known Member
Регистрация
16.02.2012
Сообщения
73
1. Как с такой структурой таблици выбрать только не прочитанные (новые сообщения)?
2. Реализовать проще всего через ajax упомянутой уже фукцией запроса через таймаут, но реализовать нужно грамотно, ато скрипт повиснет.

Проще будет используя jquery. При этом четкий скрипт реализации сложно посоветовать, все нужно делать под ваш сайт. Поможет для начала литература по аjax, с условием того что хоть немного знакомы с JS.
может есть какие то примеры?
или хотя бы подробно расписать структуру(что и как )
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
Ну вот к примеру, как вы будете выбирать не прочтенные сообщения из таблици? их нельзя отличить от уже прочтенных. Для этого нужно добавить одно флаговое поле в таблице, где после прочтения сообщения будете ставить 1(true), а до прочтения оно будет 0(false). Для поля нужен тип bool, но он все равно байтовый, так что можете ставит тип byte.

потом нужно создать отдельный файл, что-то вроде getNewMessages.php с минимальным набором комманд и максимально оптимизированным, так как запрашиваться будет часто, нужно что-б поменьше сервер грузил. Файлик и будет возвращать колличество непрочтенных сообщений, хоть просто циферкой, хоть в xml-виде, это уже дело реализации.

А на самом сайте, через Javascript запускаете Ajax-функцию, с интервалом порядка 10 секунд(даже для очень тормознутых соединений сойдет), которая будет обращатся к вашему getNewMessages.php и брать от туда число новых сообщений и вставлять в дерево вашего HTML-документа там где вам нужно.

Я более менее подробно описал суть, реализация за вами, ничего особо сложного нет.

Рас и два Там есть примеры
 

mrlasking

$_GET['rich'] or die('trying');
Регистрация
22.05.2012
Сообщения
323
http://php.net/manua...ook.sockets.php
только я не вижу смысла в их использоании в этом случае((
Использовать сокеты пхп - действительно смысла нет. Но если говорить об получении неких данных в реальном времени, связанных с действиями других пользователей. То использовать можно и нужно вебсокеты или, например, socet.io + node.js, а никак не пхп.

Дергать пхпшные страницы аяксом по сет таймауту, для обеспечения хоть какого-то подобия реального времени прийдется не реже чем раз в 1-1,5 сек. При 100 юзверях в сети вы уже будете выгребать ресурсы не хилого такого виртуального сервака. Даже если дергать будете пхпшку с "Hello world", не говоря уже о каких-либо выборках.
 

ArhAngel

Well-Known Member
Регистрация
07.05.2011
Сообщения
378
1. Нужен выделенный серв, ну или хотя-бы виртуальный, что-б его настроить по node.js
2. Для циферки в показателе колличества сообщений не нужно дергать каждую секунду данные, не чат ведь.

А по поводу правильности использования сокетов в обмене данными с сервером realtime - вы абсолютно правы.

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

Если разрабатывать портал с упором на то, что будет обмен данными в реальном времени, то нужно писать какуюто API или определенные функции, тогда будет проще сделать что-то отдельное, но если внедрять в сайт, в котором это заранее не задумывалось - ну явно не проще чем дернуть аяксом файлик с сервера.

Есть смысл для соц-сетей, в которых очень много обмена данными - ну все видели ВК и что там творится. Да вот только лагает он иногда порядочно))
 
Статус
Закрыто для дальнейших ответов.
Верх Низ