По какому принципу ВК идет получение сообщения? Допустим отправить легко - написать сообщение, через ajax добавить в БД, а как в этот момент сделать, чтобы другому пользователю пришло это сообщение, не обновляя страницу? Есть ли возможность сделать такое не с помощью интервала, а именно тогда, когда сообщение добавляется в БД? Если не сложно, прикрепите пример, пожалуйста :)
По-хорошему, в современности, такое надо бы реализовывать с помощью WebSockets. Но во Вконтакте сделано иначе, еще со старых времен, когда вебсокеты были не такими удобными.
У них сделано так, что яваскрипт делает запрос на сервер, а сервер "зависает", в цикле проверяя наличие новых сообщений. Если сообщение появляется, сервер "развисает" и возвращает ответ. Благодаря этому нет временной задержки между отправкой сообщения и его получением (кроме, естественно, неизбежных сетевых задержек).
Если же новых сообщений не поступало в течение какого-то времени (20 секунд кажется), то скрипт тоже делает возврат, после чего яваскрипт тут же делает новый запрос, и все повторяется.
Ну обычно реализуются на веб-сокетах, я думаю гугл больше даст примеров и информации по этому поводу чем я :)
https://github.com/morozovsk/websocket - тут и примеры и ссылки на забровские топики где описано как куда и что.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей