java - 用 Java 创建实时协作记事本

标签 java database sockets node.js real-time

背景:我想创建一个类似记事本的应用程序,多人可以在其中编辑一个文档/记事本。我已经创建了图形界面,现在想开始研究其中的多用户协作部分。

问题:我如何从一个客户的文本框中获取文本以转到另一个客户的文本框。我会使用套接字吗?我会将要与所有客户共享的文本存储在哪里?为了创建一个有效的实时协作文本框,我必须使用/做什么。什么是我可以研究的良好起点?

示例:Etherpad.com/Titanpad.com/Piratepad.com 或 Docs.Google.com(除非我想创建桌面应用程序,而不是网站)

解决答案中出现的一些问题:

用户如何选择他们想要编辑的文档:是

用户如何创建新文档:通过选择主菜单中的新建文件选项

如果许多用户尝试同时编辑同一个文档会怎样? : 他们都可以编辑文档。

用户是否需要在更改生效前点击“保存”按钮? : 不,应该同时反射(reflect)变化

用户需要登录吗? : 是的

任何人都可以编辑任何文档,或者是否有访问限制? : 有限制,即。文档的创建者可以阻止用户编辑文档..

最佳答案

寻找解决方案的第一步是足够详细地定义所需的最终结果。与其只考虑多用户协作部分,不如尝试描述整个用户体验:

  • 用户如何选择他们想要编辑的文档?
  • 用户如何创建新文档?
  • 如果许多用户试图同时编辑同一个文档会怎样?
  • 用户是否需要点击“保存”按钮才能反射(reflect)更改?
  • 用户是否需要登录?
  • 任何人都可以编辑任何文档吗?是否有访问限制?

通过思考这些设计决策,您最终会得出一些具体的实现问题,然后您可以尝试回答这些问题。

关于java - 用 Java 创建实时协作记事本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561211/

相关文章:

java - Quartz Scheduler 中 Cron 触发器和简单触发器的区别

java - 使方法实现的返回类型比抽象方法更具体

java - 显示下一个面板时更新 CardLayout 中的 JLable

sql - Postgres : How to form a query with 2 unrelated table column?

c++ - 如何在 C++ 中使用 waitformultipleobjects

c++ - 就快结束了! C++ 素数筛选套接字

java - 将 numpy 数组转换为 Android/Java 可读格式?

mongodb启动错误

php - 无账户投票

c++ - Boost.asio 端点是否可以用于识别 UDP 连接的客户端?