我正在开发一个需要实时协作的应用程序。我计划使用cshtml文本区来允许用户键入。使用文本区域可以实现实时协作吗?
此外,我还读到了一些关于运营转换的内容。可以使用.net框架来实现吗?
我只是一个初学者,没有多少关于算法的知识,这些算法可以帮助我实现实时协作。任何帮助都将不胜感激。
提前谢谢你。
发布于 2012-01-12 21:30:06
ShareJS是免费的,它使用node.js来实现您正在寻找的东西,并实现OT2算法
对于.Net来说,没有开箱即用的操作转换,但是你可以看看BeWeeBee SDK (虽然是商业软件)
发布于 2012-01-12 01:17:16
我正在开发一个需要实时协作的应用程序。我计划使用cshtml文本区来允许用户键入。使用文本区域可以实现实时协作吗?
这真的取决于你想要提供的用户体验。如果你想锁定一个用户的文本区域,而另一个用户正在编辑,那么这可能不是最好的用户体验,但它绝对是相对容易做到的。
如果您希望两个或更多用户能够同时编辑同一文本区域,那么使用realtime web technology在用户之间发送data_changed
事件是相当容易的,但是您需要处理用户之间的文本区内容的同步,并处理冲突检测。这方面的用户体验也复杂得多。
此外,我还读到了一些关于运营转换的内容。可以使用.net框架来实现吗?
我不得不查找operational transformation,它部分地回答了关于用户体验的问题--它是非阻塞的。浏览完维基文档后,我会问这样一个问题:为什么不可能呢?你可以在所有用户/应用程序之间即时交流,通知他们变化(如上所述:使用实时web技术),所以你只需要实现和管理所有聪明的算法:) (我不知道是否有组件可以为你管理这些)
对于自托管.NET实时web技术,您可能需要考虑SignalR、XSockets、SuperWebSocket或WebSync。
如果你想启动和运行得更快一点,你可以看看hosted realtime web technology
发布于 2018-01-04 14:17:25
这是一个古老的问题,但还有一些额外的信息可能会有所帮助。正如前面的回答所提到的,基于文本的数据同步有几种选择。其中很多都是基于Operational Transformation或CRDTs的。这些方法在SDK中以多种语言实现。(完全公开,我碰巧是Convergence的作者之一)。
但是,您还需要考虑实现协作编辑所需的一些其他功能。例如:
这些只是协作编辑中需要考虑的几个例子,而不仅仅是数据同步。当这些问题出现时,大多数答案都集中在数据同步框架上。在Convergence Labs,我们帮助人们设计协作编辑应用程序,并已经实现了数十个这样的应用程序。我们已经多次看到,如果你所投入的只是数据同步,那么用户体验就会变得非常糟糕,用户不会喜欢这个应用程序。
因此,在选择一个框架时,寻找一些可以帮助你实现实时编辑的其他方面的东西,或者至少准备好在你选择的任何工具之上实现它们。
https://stackoverflow.com/questions/8820532
复制相似问题