AJAX Real Time и совместная работа
Я пытаюсь создать приложение для совместной работы в режиме реального времени, например, Google Wave. Когда user1 пишет что-то одновременно, это отображается на экранах user2.
Я начал небольшое исследование и нашел несколько путей к этому с Ajax -
1. Каждые Х секунд отправляйте запрос на сервер и проверяйте, что "происходит"
2. timeout - длинный запрос, проблема - я видел, что могу сделать это только с IE8
Есть другие варианты? Каков наилучший способ для этого?
А со способом № 2, это правда, я могу сделать это только с IE8?
Йоси
2 ответа
Весь смысл AJAX состоит в том, что сервер может ожидать уведомления от каждого клиента и уведомлять всех других клиентов, когда что-то происходит. Нет необходимости в опросе. Искать ключевые слова как comet
, а также bayeux
, Додзё имеет хорошую реализацию.
Я не уверен, что вы имеете в виду в 2, но если бы я собирался реализовать что-то подобное, я бы сделал то, что вы объясните в 1. В основном ваш сервер будет отслеживать разговор, а клиенты будут постоянно попросить обновления.
Другой возможный вариант - флэш, но я мало что знаю об этом, кроме того, на что он способен, так что вы сами исследуете это.
Некоторые замечания по быстрому запуску в варианте 1:
Помните, что у вас есть только 2 вызова "ajax" для работы на стороне клиента (вы можете сделать только 2 вызова одновременно). Так что следите за звонками, которые отсутствуют. Используйте abort(), если вызов занимает слишком много времени или его ответ больше не будет действительным.
Получите максимальную отдачу от ваших звонков, если вам нужно отправить текст на сервер, используйте ответ, чтобы получить обновленную информацию о текущем "разговоре".