我正在开发一个需要实时协作的应用程序。我打算使用cshtml文本区域来允许用户输入。是否可以使用文本区域实现实时协作?
另外,我已经阅读了一些关于运营转型的内容。可以使用.net框架实现吗?
我只是一个初学者,并且对于帮助我实现实时协作的算法知之甚少。任何帮助将不胜感激。
提前感谢你。
答案 0 :(得分:5)
答案 1 :(得分:4)
我正在开发一个需要实时协作的应用程序。我打算使用cshtml文本区域来允许用户输入。是否可以使用文本区域实现实时协作?
这实际上取决于您想要提供的用户体验。如果你想为一个用户锁定textarea而另一个用户正在编辑那么这可能不是最好的用户体验,但它绝对相对容易。
如果您希望两个或更多用户能够同时编辑同一文本区域,那么使用realtime web technology在用户之间发送data_changed
事件相当容易,但您需要处理同步用户之间的textarea内容和处理冲突检测。用户体验也要复杂得多。
另外,我已经阅读了一些关于运营转型的内容。可以使用.net框架实现吗?
我必须查找operational transformation,它会部分回答有关用户体验的问题 - 它是非阻止的。浏览维基文档时,我会问一个问题:为什么不可能?您可以在所有用户/应用程序之间即时通信,以通知他们更改(如上所述:使用实时 - 网络技术)所以你只需要实现和管理所有聪明的算法:)(我不知道是否有一个组件可以为你管理)
对于自托管的.NET实时网络技术,您可能需要查看SignalR,XSockets,SuperWebSocket或WebSync。
如果您想要更快地启动和运行,可以查看hosted realtime web technology
答案 2 :(得分:0)
这是一个老问题,但有一些其他信息可能会有所帮助。正如之前的答案所提到的,基于文本的数据同步有几种选择。其中许多基于Operational Transformation或CRDTs。这些方法在SDK中以多种语言实现。 (完全披露,我恰好是Convergence的作者之一。)
但是,您还需要考虑实施协作编辑所需的一些其他功能。例如:
这些只是协作编辑中除了数据同步之外需要考虑的几个例子。当出现这些问题时,大多数答案都只关注数据同步框架。在Convergence Labs,我们帮助人们设计协作编辑应用程序并实施了数十个此类应用程序。我们已经多次看到,如果你所有的数据同步,用户体验非常差,用户将不喜欢该应用程序。
因此,在选择框架时,寻找可以帮助您实现实时编辑的其他方面的内容,或者至少准备好在您选择的任何工具之上自己实现它们。