Как делает живую, работу ввода в реальном времени в Google Wave?

Это будет соответствовать yyyy-mm-dd, а также yyyy-m-d:

^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$

Regular expression visualization

Если вы ищете точное соответствие для yyyy-mm-dd, то попробуйте это

^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$

или используйте это, если вам нужно найти дату в строке вроде The date is 2017-11-30

\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])*

https://regex101.com/r / acvpss / 1

34
задан Janusz 17 July 2009 в 22:55
поделиться

9 ответов

Постоянный HTTP, Comet

Поддерживайте соединение HTTP и отправляйте символы по мере их ввода

* Редактировать в 2014 году: также взгляните на WebSocket и заголовок обновления HTTP / 1.1 . Браузеры начали реализовывать это примерно в 2010 году, поэтому я добавляю это в исходный ответ.

38
ответ дан 27 November 2019 в 16:57
поделиться

Они, вероятно, используют веб-сокеты, также известные как события, отправленные сервером: http://www.w3.org/TR/websockets Можно найти базовый протокол (как draft) в IETF .

Обновление: похоже, что у WebSockets еще нет какой-либо реализации; и видео из Google I / O (перейти к 11:00) рассказывает о долгоживущем HTTP-запросе GET.

6
ответ дан 27 November 2019 в 16:57
поделиться

Чистая спекуляция, но можно ли использовать события DOM на стороне сервера из спецификации HTML 5?

1
ответ дан 27 November 2019 в 16:57
поделиться

См. Видео Google Wave: Powered by GWT примерно на 55-й минуте (ближе к концу)

Q: Как вы реализуете постоянные соединения, долгоживущие HTTP-соединения

A: План на будущее: веб-сокеты HTML5. Длительный срок. Это то, что мы используем в настоящее время.

Q: Есть ли для этого платформа или библиотека, с которыми мы можем скачать и поиграть?

A: Не уверен. Не думаю

PS: Так он сказал. Для меня это не имело особого смысла ("

3
ответ дан 27 November 2019 в 16:57
поделиться

Вероятно, сейчас комета веб-сокет в будущем. Поскольку он работает в Firefox 3.5 и из того, что я читал, веб-сокет доступен только в ночных сборках FF ... Я могу ошибаться ... поскольку он вообще не работает в IE.

0
ответ дан 27 November 2019 в 16:57
поделиться

Отправка сервера в GWT

Отправка сервера - это парадигма ожидания, ответа, закрытия, повторного открытия:

  • Ожидание: когда код GWT выполняет вызов на ваш сервер для некоторых данных, которые вы еще нет, заморозить (подождать)

  • Ответить: как только запрошенные данные будут
    доступно, ответьте им

  • Close: Затем закройте соединение.

  • Re-Open: Как только ваш код GWT получит ответ, немедленно откройте новое соединение для запроса следующего события.

4
ответ дан 27 November 2019 в 16:57
поделиться

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

WebSocket и Comet - разные вещи.

Гранвиль

1
ответ дан 27 November 2019 в 16:57
поделиться

Я предполагаю, что они используют запросы ajax. Выполните XMLHttpRequest, который является асинхронным, и когда серверу есть что отправить вашему браузеру, зарегистрированный обратный вызов javascript получает данные и делает с ними все, что угодно. Таким образом, браузер запрашивает следующее событие, обрабатывает его, повторяется бесконечно.

-1
ответ дан 27 November 2019 в 16:57
поделиться

Я потратил некоторое время на реверс-инжиниринг клиентского кода Google Wave (бесстыдный плагин для http: // antimatter15.com / misc / read / , который является общедоступным клиентом только для чтения для волны Google для всех общедоступных волн без использования роботов или гаджетов, что было намного полезнее месяц назад, когда Google не запускал обновления).

В любом случае, Google использует структуру GWT с некоторыми аспектами библиотеки Google Closure (которая на самом деле является открытым исходным кодом и документирована), и они используют библиотеку goog.net.BrowserChannel, которая, судя по комментариям, также используется для функций чата в Gmail. .

http://closure-library.googlecode.com/svn/docs/closure_goog_net_browserchannel.js.html

0
ответ дан 27 November 2019 в 16:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: