C# DropBox同步技术

C# DropBox同步技术,c#,synchronization,dropbox,C#,Synchronization,Dropbox,我目前正在使用dropbox c#API开发一个应用程序 DropBox几乎可以立即捕获服务器上的更改以及客户端上的更改 他们使用什么技术来同步这两个副本 希望有人能给我一些线索开始,我尽量避免定时器基地同步 谢谢。对于客户端更改,他们可能会使用文件系统监视程序。如果dropbox文件夹发生更改,它们将触发API以更新dropbox服务器 我不确定服务器端的更改,但应该有一些计时器机制来轮询服务器以查看更改 对于客户端更改,他们可能会使用文件系统监视程序。如果dropbox文件夹发生更改,它们将

我目前正在使用dropbox c#API开发一个应用程序

DropBox几乎可以立即捕获服务器上的更改以及客户端上的更改

他们使用什么技术来同步这两个副本

希望有人能给我一些线索开始,我尽量避免定时器基地同步


谢谢。

对于客户端更改,他们可能会使用文件系统监视程序。如果dropbox文件夹发生更改,它们将触发API以更新dropbox服务器


我不确定服务器端的更改,但应该有一些计时器机制来轮询服务器以查看更改

对于客户端更改,他们可能会使用文件系统监视程序。如果dropbox文件夹发生更改,它们将触发API以更新dropbox服务器


我不确定服务器端的更改,但应该有一些计时器机制来轮询服务器以查看更改

我不知道他们用什么。但是您可以使用c#中的filesystemwatcher。这将允许您捕获文件更改事件。它不是最容易使用的东西,但是使用起来很简单

为了确保文件的旧版本不会覆盖新版本,我猜他们使用了一个版本计数器,通常情况下就是这样

为了确定文件是否已从当前存储的文件更改,我想他们可能会使用一些检查

if (local[file.name].size != server[file.name].size)
{
    file.changed = true;
}
else if (local[file.name].md5 != server[file.name].md5)
{
    file.changed = true;
}
else
{
    file.changed = false;
}

我不知道他们用什么。但是您可以使用c#中的filesystemwatcher。这将允许您捕获文件更改事件。它不是最容易使用的东西,但是使用起来很简单

为了确保文件的旧版本不会覆盖新版本,我猜他们使用了一个版本计数器,通常情况下就是这样

为了确定文件是否已从当前存储的文件更改,我想他们可能会使用一些检查

if (local[file.name].size != server[file.name].size)
{
    file.changed = true;
}
else if (local[file.name].md5 != server[file.name].md5)
{
    file.changed = true;
}
else
{
    file.changed = false;
}

对于服务器端更改,您必须在V2 api中请求“列表\文件夹\继续”。它将返回所做更改的列表。使用link进行测试。

对于服务器端更改,您必须在V2 api中请求“list\u folder\u continue”。它将返回所做更改的列表。使用link进行测试。

如果他们使用计时器机制,则意味着它几乎每秒钟轮询一次。有没有类似于推送邮件的技术,但用于协议而不是电子邮件?它不必是每秒钟一次,就像AJAX COMET长轮询一样。。客户端将启动一个连接,而服务器将仅在发生更改时响应。因此,客户端在检索第一个响应后启动下一次轮询。。类似于……如果他们使用定时器机制,意味着它几乎每秒钟都会进行一次投票。有没有类似于推送邮件的技术,但用于协议而不是电子邮件?它不必是每秒钟一次,就像AJAX COMET长轮询一样。。客户端将启动一个连接,而服务器将仅在发生更改时响应。因此,客户端在检索第一个响应后启动下一次轮询。。类似于……我理解这一部分,我不理解的是客户端如何知道服务器端的文件发生了更改。Dropbox客户端几乎可以立即检测到服务器上的更改,我可以使用类似的技术?Filesystemwatcher甚至可以检测到文件系统上的更改,比如文件的更改。这很可能是正在使用的。另一个人也说了同样的话。请参阅我应该更改我的问题:如何立即检测服务器更改?如果要检测是否有服务器更改,请使用与直接推送相同的方法。让客户端连接到服务器。并在发生更改时使用该打开的套接字从服务器向客户端发送消息。是的,您有任何代码可供参考吗?或者我能看到的任何参考资料?谢谢。我理解这一部分,但我不理解的是客户端如何知道服务器端的文件发生了更改。Dropbox客户端几乎可以立即检测到服务器上的更改,我可以使用类似的技术?Filesystemwatcher甚至可以检测到文件系统上的更改,比如文件的更改。这很可能是正在使用的。另一个人也说了同样的话。请参阅我应该更改我的问题:如何立即检测服务器更改?如果要检测是否有服务器更改,请使用与直接推送相同的方法。让客户端连接到服务器。并在发生更改时使用该打开的套接字从服务器向客户端发送消息。是的,您有任何代码可供参考吗?或者我能看到的任何参考资料?谢谢