【问题标题】:CalDAV faster than .ics files for calendar syncing?CalDAV 比用于日历同步的 .ics 文件更快?
【发布时间】:2014-10-12 14:58:03
【问题描述】:

CalDAV 服务器会比 .ics 文件提供更快的同步吗?专门用于 iOS 和 Google 日历。我知道客户负责更新和频率。

许多帖子表明 Google 日历更新 .ics 提要的速度很慢。我测试了 6 个多小时后,它仍然没有更新我对 .ics 文件所做的更改。

iOS 也有同样的问题。 .ics 文件的初始加载可以很好地加载日历。但是在更改 .ics 文件后,iOS 几天内再也不会再次请求该文件(查看 apache 日志文件)。

我正在尝试共享日历提要。我只需要发布日历(只读)。我不需要用户进行更改。 .ics 似乎比运行完整的 CalDAV 服务器更容易。如果我这样做,值得吗?它会快速(几分钟,而不是几天)同步到 Google 日历、iOS 和其他客户端吗?

【问题讨论】:

  • 运行您自己的 CalDAV 服务器并不意味着您可以与谷歌日历同步。你更有可能做不到。

标签: ios icalendar caldav


【解决方案1】:

到目前为止,恐怕 CalDAV 在您的场景中不是一个选项:

  1. 没有 caldav url 这样的东西。
  2. 客户可以通过一些查询来区分基本 ics 文件和 CalDAV 集合,但他们目前不能。因此,您必须以某种方式将 ics 与 caldav 业务公开给最终用户。
  3. 您似乎关心的某些 CalDAV 客户端 (iOS) 不提供匿名“订阅”单个 CalDAV 集合的方法。他们只会与成熟的 CalDAV 帐户互动。

【讨论】:

    【解决方案2】:

    如果您的数据发生了相当大的变化,CalDAV 是一个更好的选择。它只会发送更改的数据(而不是完整的日历),这在移动设备上尤为重要。 (您不希望仅仅因为单个事件的标题发生更改就向客户端发送完整的 1MB 日历......)

    对于 webcal,请查看此:Set Update Limits on iCalendar Feed。您可能想尝试日历上的 REFRESH-INTERVAL 和 X-PUBLISHED-TTL 属性。 我想如果你没有这样的,客户将退回到每周刷新......

    话虽如此,CalDAV 更新绝对应该默认为更快的刷新(比如 15 分钟而不是一周?)。

    为了在 iOS/OSX 上实现即时刷新,请使用 iCloud 或 OS X 服务器来托管您的日历。对此类的更改将通过 APS 推送到设备。

    也许还值得注意的是,您可以在 CalDAV 帐户中托管订阅/网络日历。并通过 WebDAV 属性配置此类的刷新设置。

    正确的方法在一定程度上取决于您实际尝试实现的目标 ;-)

    P.S.:所有这些都不能帮助您使用 Google 日历客户端,因为它们首先不支持 CalDAV ...

    【讨论】:

      【解决方案3】:

      通常,.ics 文件用于将静态数据导入日历。如果要更新条目并需要将其推送到客户端,我不希望使用 .ics 文件。把它想象成一个快照。

      CalDAV 在这里更明智:它是一个用于发送和接收更新的完整协议。

      【讨论】:

      • 通过 HTTP GET(又名“订阅日历”/webcal)发送 .ics 是发布公共日历数据的一种非常常见/广泛使用的机制。 OS X 支持从 5 分钟到每周一次的刷新设置。一个主要优点是它得到了广泛的支持,包括 Outlook 等。最大的缺点是刷新始终是完整的日历刷新而不是部分更新 - 换句话说,对于变化很大的数据来说效率非常低。
      • (我知道这是一个老问题...)您可以通过删除过去超过 x 天或近期不发生的事件来减小 ics 文件的大小,具体取决于您的需求。 (我在某处读到一些客户会查看大小并据此调整更新间隔,但没有官方信息)
      猜你喜欢
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多