Это зависит от того, нужен ли вашим пользователям доступ на запись к своему календарю.
Однажды я написал простую (командную строку) утилиту, которая экспортирует один файл календаря (.ics). В случае изменения он загружает экспортированный файл .ics на веб-сервер, где его могут использовать клиенты календаря (например, Google Calendar, iCalendar, Sunbird, Outlook). Публикацию для разных пользователей можно легко выполнить, загрузив файл .ics в отдельную папку для каждого пользователя.
Затем я запланировал регулярный запуск этой утилиты. Конечно, вы могли бы сделать так, чтобы ваша служба Delphi делала это регулярно.
Многие клиенты календаря понимают http://
URL-адреса, а также webdav://
URL-адреса. Аутентификацию можно организовать с помощью одной из обычных схем аутентификации HTTP. Конечно, вы захотите использовать SSL для защиты вещей.
Единственным ограничением этого подхода является то, что результирующий календарь фактически доступен только для чтения.
Если вы хотите предоставить доступ для записи, вам понадобится настоящий веб-сервер. Настоящая реализация webcal будет означать поддержку протокола webdav (который сам по себе является расширением протокола HTTP). ) на сервере и получать изменения из службы Delphi. Либо это, либо написание сервера WebDav/CalDav в Delphi (например, используя компонент Indy TIdWebdav путем расширения компонента TIdHTTPServer
, поскольку Indy не поддерживает компонент TIdWebdavServer).
Вам придется самостоятельно обрабатывать все специфичные для webdav команды (используя событие OnCommandOther
) в соответствии с спецификациями WebDAV а>. Этот вопрос о написании сервера WebDAV может дать некоторые указатели...
В качестве альтернативы вы можете использовать сторонний сервер webdav и получать любые изменения из службы Delphi.
person
Martijn
schedule
16.07.2012