我正在设计一个文件同步应用程序(类似于DropBox)。客户端在443端口与服务器保持持久的安全(SSL)TCP套接字连接。每当客户端创建/更改/删除文件时,会将包含相关数据的数据包通过套接字发送到服务器,服务器会处理它以更新服务器上的文件。同样,当服务器上有变化时,它会将相关数据发送到客户端,然后客户端会更新本地副本。
当服务器位于本地计算机或本地局域网上时,这完全正常工作。但是,我担心的是当客户端处于不可靠的网络上时。因此,我的问题是,在设计这样的应用程序时,需要考虑哪些最佳实践和问题?
例如,假设在客户端上创建文件时,客户端应该只将数据发送到服务器并忘记它,还是应该在一定时间内等待服务器的确认,否则重新发送数据?什么样的确认方式?
当服务器位于本地计算机或本地局域网上时,这完全正常工作。但是,我担心的是当客户端处于不可靠的网络上时。因此,我的问题是,在设计这样的应用程序时,需要考虑哪些最佳实践和问题?
例如,假设在客户端上创建文件时,客户端应该只将数据发送到服务器并忘记它,还是应该在一定时间内等待服务器的确认,否则重新发送数据?什么样的确认方式?