gpt4 book ai didi

java - 开发 CalDav 服务器

转载 作者:太空狗 更新时间:2023-10-29 22:47:31 39 4
gpt4 key购买 nike

我的数据库中保存了一组事件(一个非常特殊的数据库,所以我不能将一些流行的开源服务器与 MySQL 一起使用)。现在我想构建一个 CalDav 服务器(通过 Java),以便用户可以将他的日历客户端连接到它以检索或修改事件。我是新手,所以有很多问题,希望大家能帮帮我。

  1. 一般步骤是什么?

  2. 我需要提供 servlet 吗?如果是,那么我必须为请求返回什么? JSON 或 XML 或 .ics 文件?

  3. 当用户订阅我的日历时,这是否意味着他的客户端将在一段时间后拉取我的服务器(调用 servlet)。

更新:自从我第一次提出这个问题以来,这个问题已有 1 年历史,但我得到了很多赞成票,所以我不得不提供一些信息:我最终使用了 Milton 库 http://milton.io/ ,它抽象了 servlet,你只需要编写函数来返回数据。该图书馆的作者非常乐于助人且信息丰富。最终结果:我们的 caldav 服务器成功了。

我也接受 Evert 的回答。

最佳答案

让我试一试 ;-)

一般步骤是什么?

如 Evert 所述,您需要实现 CalDAV 服务器。根据您要支持的功能,这很重要,需要了解相关规范(iCalendar RFC 5545 和 CalDAV 4791、WebDAV RFC 4918)。

实现 CalDAV 服务器的一般步骤是什么?您需要 HTTP 入口点才能:

a) 提供帐户信息(在 WebDAV 中称为主体),这包括帐户日历在哪个 URL 下运行

b) 提供日历列表(称为日历主页,主要信息来自 a) 指向此)

c) 提供实际日历,即其中包含的事件。 CalDAV 日历是“iCalendar”资源的特殊 WebDAV 集合。 iCalendar 是表示事件的格式。

根据您要支持的 CalDAV 功能,这可能会更复杂(例如服务器端调度)。有针对更快的同步(同步报告)或上传等的优化。您不需要全部都可以开始。

我需要提供一个servlet吗?如果是,那么我必须为请求返回什么? JSON 或 XML 或 .ics 文件?

正如 Evert 所说,如何实现 HTTP 端点是您的选择。 Servlet 是一个可行的选择。主要信息、日历列表和日历中项目的 URL 以 (WebDAV) XML(多状态响应)返回。事件的实际内容需要以 iCalendar (.ics) 格式返回。

当用户订阅我的日历时,这是否意味着他的客户端将在一段时间后拉取我的服务器(调用 servlet)。

是的。

一些 CalDAV 实现也支持推送(服务器可以在新数据可用时通知客户端),但尚未标准化且实现差异很大。如果您的服务器实现 CTags 和同步报告 (RFC 6578),轮询可以保持快速。

关于java - 开发 CalDav 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14910553/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com