如何为用户的收件箱和日历资源同步客户端
Posted
技术标签:
【中文标题】如何为用户的收件箱和日历资源同步客户端【英文标题】:How to sync client for inbox and calendar resource of a user 【发布时间】:2014-12-01 20:30:39 【问题描述】: 我正在尝试了解 Caldav 的事件安排 我使用 CalendarServer使用 mac iCal 客户端,“userA”创建了一个事件并邀请了“userB”
此时,'userB' 在他的集合中有两个相同事件的项目:
收件箱 - 来自“userA”的请求 ------------- /userB/inbox/123456789.ics 日历 - 为用户创建的服务器 ---------/userB/calendar/987654321.ics它们都指向同一个事件。
对于 userB 客户端,我需要同时访问这两个项目:
* To Delete from 'Inbox' when userB "Accepts"
* To update 'Calendar' when userB "Accepts"
现在我向'inbox' endpoint
和'calendar' endpoint
发送两个不同的请求,这会导致客户端出现同步问题
如何在对 Caldav 服务器的单个请求中访问 userB 的两个 .ics 文件??
请指点。
【问题讨论】:
【参考方案1】:截至今天,还没有 RFC 标准的方法来删除收件箱项目并在 DAV 中的单个 HTTP 请求中更新日历资源。
有一个 Apple 扩展可以进行批量更改:Calendar Server Bulk Change Requests for *DAV Protocols。但我不会将它用于这个特定的问题。
自动调度 CalDAV 服务器收件箱中的 iTIP 资源在调度中不起任何作用。将其视为通知。因此,它实际上不会导致同步问题。 由客户端(是否自动调度)确定收件箱项目是否仍然有效并且需要显示(或可以删除)。例如,如果事件资源有效,则显示“needs-action”iTIP 通知是没有意义的。
您也可以查看SEQUENCE 属性,不过最好将 iTIP 与实际事件进行比较。
【讨论】:
以上是关于如何为用户的收件箱和日历资源同步客户端的主要内容,如果未能解决你的问题,请参考以下文章