2015-11-24 6 views
3

Я создаю проект колледжа, в котором мне нужно внедрить систему уведомлений, такую ​​как Facebook, так как в нем говорится, что есть два пользователя, которые вошли в систему. Когда пользователь комментирует/любит сообщение другого пользователя, запись в базу данных делается как для симпатии, так и для уведомления. В то же время пост-автор должен также получать уведомление о событии like/comment, а значок уведомлений должен быть обновлен. Проект построен с использованием PHP, JQuery, AJAX и нравится. Может ли кто-нибудь сказать мне, как реализовать это в режиме реального времени без узких мест? Ссылки на ссылки или код или учебники были бы высоко оценены.Реальная система уведомлений/push-уведомлений в PHP

+0

вы можете посмотреть в WebSockets – Calimero

+0

@Calimero я искать его и до сих пор ищут. Пока нет хорошего ресурса. – Yomesh

+0

Я полагаю, что pull-based больше основан на php и jquery, но для того, чтобы сохранить скрипт и полезную нагрузку небольшим, возможно, вы можете рассмотреть наличие столбца для like/comment/notification, и этот столбец возвращает true или false для уведомления пользователь во время запроса js-> php, только после того, как пользователь выберет для чтения уведомления, затем выполнит полный запрос и в то же время обновит столбец уведомлений строки пользователя до 0, в противном случае это будет только простой выбор в одном столбце (уведомление = 1 WHERE user_id ...) для js для выполнения фонового запроса только каждые 500 мс или 1000 мс. для push-based, довольно сложный. –

ответ

0

Эти системы, построенные на PHP, в любом случае основаны на PULL-оповещениях, а не на основе Push-уведомлений.

Логика заключается в том, что вы пытаетесь как можно чаще запрашивать базу данных, сохраняя компромисс между Load на стороне клиента и Realtimeliness.

Для экс:

function pullNotifications(){ 

    $.ajax({ 
     url:"notificationFetch.php", 
     success: function(data){ 
      // Parse data 
      // Check new notifications if any 
      // If yes notify user 

      //.... 

      setTimeout(function(){ 
       pullNotifications(); 
      },1000); // Calling it again after every one second 
     } 
    }) 
} 
+2

Запуск сценария или вызов AJAX для проверки новых уведомлений после определенного интервала будет неэффективным, правильно? Есть ли более эффективный способ? – Yomesh

+0

Я думаю, что это было бы слишком сложно для вашего «проекта колледжа» – void

+0

Да, но я хочу реализовать или изучить лучший способ сделать это. Я ценю ваш ответ. Тем не менее, я все еще ищу лучшую альтернативу. – Yomesh

Смежные вопросы