Andrewsolomon пишет:.....Мне нужно сделать следующее: клиент с именем A просто зашел на сайт, авторизировался, и ВООБЩЕ больше никуда не тыкает мышкой, просто авторизировался... и допустим другой клиент сайта с именем B написал сообщение уже знакомому нам юзеру A, написал, нажал отправить... и у юзера A оно !тут же! должно отобразилось на сайте
Как мы знаем сначала юзер запрашивает определенную страницу, а сервак отвечает. А мне надо чтобы юзер ничего не спрашивая получил ответ от сервака, типо вот тебе сообщение пришло от юзера В
Я тупо объясняю, так что спрошу прямо: как отправить определенное сообщение пользователю сайта, зная его.... сессию (ну то что в куках, _SESSION)
Добрый день, Andrewsolomon!
Действительно, обычно юзер запрашивает определенную страницу, а сервер отвечает, а перед этим юзер включает компьютер и запускает браузер.
Будем исходить из следующих предположении:
- есть некая система и два её юзера А и В;
- система установлена на сервере и доступ к ней клиентов происходит по HTML-протоколу.
- требуется разработать messenger для этой системы.
- реализация должна быть на PHP и JS (без ajax)
1. Юзер А online запрашивает определенную страницу и после авторизации видит на ней, например, конветиртик или линк “отправить сообщение”,
щелкнув, по которому юзер вызывает PHP-скрипт messenger.
Юзер, как-то находит другого клиента сайта с именем B и пишет ему сообщение и нажимает кнопку “отправить” .
После этого сообщение отправляется на сервер и messenger сохраняет его БД MySQL в таблице М
2. Юзер B был на момент отправки сообщения offline.
Он запрашивает определенную страницу и после авторизации, система проверяет по UserId есть ли для него сообщения в таблице М.
Если сообщения есть, то открывает окно messenger либо показывает рядом с конвертиком количество новых сообщений, по которым нужно щёлкнуть.
3. Если оба юзера online и должны получать сообщения не покидая систему, то messenger придётся с заданным тактом перезапускать через JS.
Это можно сделать так(см. скриншот ниже):
На стартовой странице в iframe загружаете messenger
CODE ( html):
скопировать код в буфер обмена
<iframe src='messenger.php?sid=<?=$sid?>' id='messenger_f' name='messenger_f' width='30' height='15' frameborder='0' scrolling='no' > </iframe>
В нём после загрузки будет виден конвертик: images/post_no.gif
CODE ( html):
скопировать код в буфер обмена
<img src='images/post_no.gif' width='14' height='15' border='0' onMouseOver='this.style.cursor="pointer"' onClick='open_messenger()' > <form name="messeg" method="post" action="messenger.php?sid=<?=$sid?>"></form> <script language='JavaScript'> var sid = '<?=$sid?>'; function cl_win(){ document.messeg.submit()} window.setTimeout('cl_win()',100000); //------------------------------------------------- function open_messenger(){ var f = document.messeg; f.action = "messenger_view.php?sid=" + sid + "&layer=2"; f.target = "tmp_view2_f"; f.submit(); } </script>
Удачи! Прикреплено изображение (Нажмите для увеличения)
(Отредактировано автором: 05 Ноября, 2017 - 14:06:12)
|