用于通过网络共享数据的高级服务器库
我想实现类似于 Etherpad 的东西 - 一个在线协作程序。
您是否知道有一个服务器库可以处理传入连接、管理用户列表并在它们之间分发结构化数据?
DRb 接近我想要的,但据我了解,但据我了解,它通过网络重复发送整个对象,使其非常慢。它应该只发送更新。
Ruby 会很完美,但我不在乎。
I'd like to implement something similar to Etherpad - an online collaboration program.
Do you know of a library for the server that takes care of incoming connections, manages a user list and distributes structured data between them?
DRb is near to what I want, but as I understand it, but as I understand it, it repeatedly sends the whole object over the network, making it quite slow. It should only send updates.
Ruby would be perfect, but I don't really care.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
运营转型是您正在寻找的技术。但是,它不会管理您的传入连接和用户列表。它负责处理数据以及如何对数据执行更新。您在这里有几个选项:
实施您自己的版本。根据协作需要的复杂程度,即是否涉及格式化或纯文本编辑,您可以遵循一些标准算法。 http://cooffice.ntu.edu.sg/otfaq/。
Etherpad 是开源的,因此您可以随时查阅他们的代码库。如果您了解一点实现背后的“理论”,将会有所帮助。再次,请参阅上一个链接。
您可能想尝试联系 codoxware 的人员。他们拥有多种编程语言的相当复杂的操作转换库。我还没有拿到一份副本(他们似乎已经结束了审判)所以我不能说它有多好。但他们已经使用它在 Word 中构建了相当复杂的协作。
Operational transformation is the technology you are looking for. However it won't manage your incoming connections and user-list. It takes care of the data and how to perform updates on them. You have a couple of options here:
Implement your own version. Depending on how sophisticated the collaboration will need to be, i.e. will it involve formatting or text-only-editing, it you can follow some of the standard algorithms out there. http://cooffice.ntu.edu.sg/otfaq/.
Etherpad is open source so you can always consult their code base. It would help if you understood a little the "theory" underneath the implementation. Again, refer to the prev link.
You might want to try to contact to the guys at codoxware. They have a pretty sophisticated operational transformation library in a number of programming languages. I haven't been able to get my hands on a copy yet (they seemed to have closed the trial) so I cannot say how good it is. But they've used it to build pretty sophisticated collaboration in Word.