如何为基于 java 的桌面应用程序实现多用户交互?

How do I implement multi-user interactions for a java-based desktop application?

我对编程还很陌生,所以请多多包涵。

对于我的大学项目,我正在开发一个 Java 桌面应用程序,它使用 MySQL 实现一个数据库。对于 GUI,我使用 JavaFx 和 Scene Builder。 我正在制作的应用程序的灵感来自 Google 游戏商店中某些基于 android 的应用程序,即 "Life is an RPG" 和 "Habitica"。它们有点像 "productivity" 应用程序,可帮助您将要执行的任务添加到应用程序,然后在完成上述任务后在应用程序中奖励您 "experience points" 和 "gold"。它有点像老派的角色扮演游戏问题,并试图以 "quest-like" 的方式组织你必须在 irl 中完成的任务。

这是我最初的想法。我的导师希望我添加一些功能。也就是说,他希望我的应用程序的用户能够相互组成 "groups" 或 "parties" 并参与某种群组 activity,他们都在做同样的事情 activity,因此,因 activity.

而获得奖励

通过教程搜索,我设法找出并实现了该应用程序的基本功能,比如用户登录或添加任务等。但是,我没有弄清楚的是我如何可以使此用户与用户的交互发生在应用程序内。如果我的问题听起来有点太宽泛而无法提出,我很抱歉,但我一直在查找它,但我无法理解或想出如何告诉我的程序用户 A 正在与用户 B 交互的想法,并且他们正在共同完成某项任务。

我再次为相当愚蠢的问题和长长的文字道歉。在这方面的一些帮助或澄清将不胜感激。即使是关于我需要研究和学习的正确方向的一点也会有很大帮助。

谢谢。

因为这很宽泛,所以我会给你 high-level 答案。各个桌面客户端都共享同一个数据库 (MySQL)。

因此,您可以在那里解决这个问题:在您的数据库中。

一个选择是拥有某种 "group task"。您应用的每个用户都可以注册此任务,当它 "completed" 时,每个人都会获得一些积分。

要管理它,您可能需要 table 在您的数据库中:

  • 一个table任务
  • 一个 table 给协作者

每个任务都需要一个唯一的 ID,然后您可以在协作者中引用该 ID table。

Task table:

-------------------------
| ID | Task             |
=========================
| 1  | Slay dragon      |
-------------------------

Collaborators table:
-------------------------
| Task | User           |
=========================
| 1    | Moe            |
-------------------------
| 1    | Homer          |
-------------------------

在这个例子中MoeHomer有屠龙的任务。一旦龙死了,双方都可以获得一些分数。这是一个非常非常简单的例子。通常,您会有更多 table。至少一个给用户等等

但除此之外,这就是 high-level 的想法。显然,您需要构建一些 UI 以允许用户参与任务等。但我相信您可以解决这个问题。