За последние 24 часа нас посетил 22321 программист и 1036 роботов. Сейчас ищут 648 программистов ...

Обмен личными сообщениями пользователей. По типу "Диалоги"

Тема в разделе "MySQL", создана пользователем sookamordiy, 31 авг 2012.

  1. sookamordiy

    sookamordiy Активный пользователь

    С нами с:
    31 авг 2012
    Сообщения:
    3
    Симпатии:
    0
    Всем доброго времени суток. Я еще делитант в вебе. Прошу у вас помощи.
    Мне нужно реализовать: систему обмена личными сообщениями между пользователями сайта, по типу диалогов "вконтакте".
    Что уже естЬ:
    1) таблица в БД - messages - для сообщений. Содержит в себе поля: id(сообщения), from_id(ид пользователя приславшего сообщение), to_id(id пользователя кому прислали сообщение), text(собственно сам текст сообщения), status(1 - сообщение прочитано, 0 - сообщение не прочитано).
    2) таблица users, с различными полями такими как: username, id, password и т.п. эта таблица связана с таблицей messages внешними ключами. Так же разработано авторизация пользователей.
    3) разработана страничка диалогов с одним человеком. Т.е.: поле ввода текста, отправка сообщения, принятие сообщения, отоброжение диалогов методом echo, так же выводится username отправившего.

    Что мне необходимо:
    1) подцепить ajax к самим диалогам, что бы при отправке сообщения обновлялся только блок со списком сообщений между пользователями. Данного блока у меня нет, как я уже написал выше вывод идет через echo.
    2) страницу с диалогами с каждым с кем случалась переписка. Должна выглядеть как вконтакте, т.е.: имя того с кем диалог|| последнее сообщение данного диалога || когда. Проблема возникла в последнем сообщение.

    Заранее спасибо, надеюсь на вашу помощь. Фрейморк yii, субд - MySQL. Если информации не достаточно напишите что вам нужно показать, кода много и что бы показывать весь.
     
  2. bes231084

    bes231084 Активный пользователь

    С нами с:
    11 сен 2012
    Сообщения:
    8
    Симпатии:
    0
    Re: Обмен личными сообщениями пользователей. По типу "Диалог

    Ну начни с Ajax'a
    Код (Text):
    1.  
    2. <script>  
    3.         function show()  
    4.         {  
    5.             $.ajax({
    6.                 type: 'GET',
    7.                 url: "твой_скрипт.php",  
    8.                 data: 'данные для скрипта в формате <var1=var1_value&var2=var2_value> ',  
    9.                 cache: false,  
    10.                 success: function(html){  
    11.                     $("#content").html(html);  
    12.                 }  
    13.             });  
    14.         }
    15.      
    16.         $(document).ready(function(){  
    17.             setInterval('show()',500); // Интервал обновления  твоего_скрипта.php
    18.         });  
    19.     </script>
    Логику скрипта продумай сам. Если надо есть какой то у меня, но не совсем под твои нужды.
     
  3. sookamordiy

    sookamordiy Активный пользователь

    С нами с:
    31 авг 2012
    Сообщения:
    3
    Симпатии:
    0
    Прошло 8 лет, отвечу сам на свой вопрос.
    Бери это https://github.com/ratchetphp/Ratchet - это сервер-веб сокетов, он принимает сообщения от клиента и транслирует всем остальным
    Дальше это - https://learn.javascript.ru/websockets - это клиент
    Пихай описывай 4 события с каждой из сторон, таким образом у тебя будет описан совсем простой протокол