Node.js 比。用于简单客户端应用程序的 JavaFX(从服务器打印出消息)

Node.js VS. JavaFX for simple client application (prints out message from server)

有问题的申请

服务器端

用 Node.js 编写的服务器将处理一些请求并发送客户端应用程序需要为用户打印的文本消息。

客户端

客户端将从服务器接收消息并打印出来。客户端将在 PC 中 运行。

问题

我和我的同事正在询问哪种技术最适合用于客户端应用程序,看看它会有多简单。它所要做的就是有一个漂亮的 GUI,可以打印出它从服务器接收到的任何消息。

客户端应用候选人

Node.js

一种可能性是使用 Node.js、html、css 和 javascript 构建客户端应用程序。这样做的主要优点是服务器是用相同的技术构建的,这使得通过套接字进行通信变得非常容易。客户端不需要轮询,因为它们总是通过套接字连接,每当服务器收到消息时,它都会将其推送给客户端,客户端将采取行动因此。

JavaFX

这是另一种可能,因为GUI会有动画,需要尽可能流畅。这里的问题是缺乏使用 JavaFX 的经验,以及它在与服务器的持续连接中的表现如何。


非常感谢有经验的人提供任何见解。

Lack of experience with JavaFX

这不会成为问题。如果您对 Java 有一些经验,那么您就可以开始了。即使没有经验,也不要气馁,as Oracle has very rich documentation to get you started.

这里有一些支持JavaFX的要点:

  • JavaFX 附带一个名为 Scene Builder 的拖放即时 UI 工具。一旦开始使用它,您将永远不会回头。该工具的输出是名为 FXMLs 的文件,可以称为 JavaFX 应用程序的视图。
  • JavaFX supports CSS。 JavaFX 上的几乎所有节点都可以使用 JavaFX CSS 设计,尽管 JavaFX 上使用的 CSS 与标准 CSS,但你很快就会掌握它。 ;)
  • JavaFX UI (FXMLs) 可以使用控制器无缝地插入您的代码,这意味着一个开发人员可以处理 UI,而其他人处理业务逻辑。
  • JavaFX 可以创建简单的 distribution packages,使用它您可以创建针对不同 OS 的不同分发包(安装程序),只需单击构建文件即可。例如,选项 EXE and MSI 代表 windows,DEB 代表 Linux,APP 代表 Mac OS X.
  • 获得多线程环境的力量。
  • 在 Java 运行时运行,它存在于世界上几乎所有的系统中。用户可能不必安装 运行 时间来 运行 JavaFX 应用程序。

关于与服务器的持续连接问题的第二部分,您不会有任何问题,因为JavaFX 运行s在 JVM 上,这是一种经过套接字连接测试的古老介质。 Here is a nice tutorial on Socket communication.

尽管我更喜欢使用 JSON 而不是 sockets 来执行此操作。

你要经历的link个:

Starting on JavaFX - JavaFX version and "development patterns" questions

注: 用户无使用经验node.js,可考虑优点并将其与 node.js 客户端的内容进行比较。