2009-12-26 7 views
0

Я создаю приложение чата в php.предупреждение при обновлении базы данных

AIM: когда user1 приглашает user2, user2 хотят получить сообщение предупреждающего или всплывающее user1 имеет приглашает его.

Что я сделал это -

Когда user1 инвайты, сообщение сохраняется в базе данных. В стороне пользователя я использовал, чтобы проверить, обновлена ​​ли база данных или нет. Если база данных обновляется, я использовал для отображения предупреждения. Это я сделал на php и javascript, но не работал все время.

Это хороший метод? Любой другой метод?

ответ

1

Все клиенты могут использовать JQuery и отправить следующий запрос периодически:

function checkIfIAmInvited() 
{ 
    jQuery.ajax({ 
     type: "POST", 
     url: "some.php", 
     data: "name=currentUser&", 
     success: function(msg){ 
     if(msg.indexOf('uninvited') !== -1) 
     { 
      alert("You have been invited by " + msg); 
      //Method to do stuff once I am invited 
      iAmInvitedMethod(); 
     } 
    }); 
} 

Для вызова выше кода периодически вы можете использовать следующий код JQuery/JavaScript. Это будет делать периодические звонки и получать ответ от вас. Как только ответ приходит без содержания строки «незваный», он выдает предупреждение, а также вызывает функцию post method.

Это может быть повторно вызвано следующим кодом.

window.setInterval("checkIfIAmInvited()", 5000); 

Это будет проверяться каждые 5 секунд, если есть приглашения. В качестве альтернативы для более эффективного управления jquery плагины, такие как Timer, могут использоваться для выполнения чего-то многократно.

2

Используйте Ajax для отправки запроса на сервер периодически. Ответ будет содержать любые приглашения, которые пользователь имеет. Ответ может быть в JSON, который можно легко оценить в JavaScript.

1

Использование (по крайней мере) двух поездок в базу данных - это плохой способ обработки чата в режиме реального времени. Если вы делали какую-то сохраненную чат-систему, то это хорошо. Но, учитывая, что вам нужно всего лишь удерживать текст в течение секунды или двух, я бы использовал только SQL-Lite или другое в решении для памяти. Это было бы намного быстрее и проще на вашем сервере.

1

Для систем чата и обмена мгновенными сообщениями вы должны изучить использование технологии Push-based, такой как Comet. Дополнительная информация в this thread: реализация с jquery.

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