2010-06-30 3 views
0

Я использую PHP, AJAX, базу данных MySQL и много jQuery для прототипа веб-чат-системы (аналогично Facebook Chat). Я зациклился на том, как «слушать» входящие чаты ... когда нужно знать, что кто-то пытается общаться со мной ... и знать, что это новый чат, а не существующий чат.как обнаружить входящее сообщение чата?

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

Есть ли способ получить уведомление, когда, например, строка была вставлена ​​в таблицу в базе данных MySQL, так что вместо постоянного опроса я могу просто получить уведомление, а затем посмотреть, что как вставлено ?

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

Спасибо, Христо

+1

Вы можете использовать ajax для проверки своих записей каждые X секунд ... если введена запись с более высоким идентификатором, то последнее сообщение, которое вы получили, вы либо открываете новое окно с новым пользователем в чате, либо печатаете его в данном открытом окне, которое зависит от того, как работает ваш чат и как ваша структура базы данных ... и если вы хотите что-то вроде мессенджера или простой чат с несколькими пользователями. – Prix

+0

ahhh .. высшее id ... хороший момент, я об этом не думал. Я ушел с отметки времени, но с этим трудно справиться. Спасибо, я попробую. – Hristo

ответ

5

Вы должны использовать опрос, но вы можете использовать технику, называемую Comet, которая включает в себя длинный-опрос, т.е. отправки запроса Ajax, который будет проходить на сервере, пока запрос на чат не приходит.

http://en.wikipedia.org/wiki/Comet_(programming))

+0

Это похоже на 5-й раз, когда я слышал про комету ... наверное, время для меня, чтобы проверить это. Благодарю. Можете ли вы дать мне более подробную информацию о логике кометы? – Hristo

+0

попробуйте http://ajaxpatterns.org/HTTP_Streaming или http://cometdaily.com/ – quantumSoup

+0

@hristo, Comet не является конкретной технологией. Это имя дано любой технике для имитации толкания данных по сети. Это такая же технология, как и Ajax. –

1

Я думаю, что опрос является единственным способом для JavaScript для толкания на стороне сервера изменений.

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