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

时间:2015-01-23 09:42:38

标签: node.js sockets javafx client-server

有问题的申请

服务器端

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

客户端

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

问题

我的同事和我正在质疑哪种技术最适合客户端应用程序,看看它有多么简单。它所要做的只是拥有一个很好的GUI,可以打印出从服务器收到的任何消息。

客户端申请的候选人

Node.js的

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

JavaFX的

这将是另一种可能性,因为GUI将具有动画,并且它需要尽可能平滑。这里的问题是缺乏JavaFX的经验,以及它在与服务器的持续连接中的表现如何。


我真的很感激有经验的人的见解。

1 个答案:

答案 0 :(得分:5)

  

缺乏JavaFX经验

这不会成为问题。如果你有一些Java经验,那么你很高兴。即使你没有经验,也不要沮丧,如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,使用它可以创建针对不同操作系统的不同分发包(安装程序),只需单击构建文件即可。例如,Windows的选项EXE and MSI,Linux的DEB和Mac OS X的APP
  • 获得多线程环境的力量。
  • 运行Java Runtime,它几乎存在于全世界的所有系统中。用户可能不必安装运行时以运行JavaFX应用程序。

关于与服务器的持续连接的问题的第二部分,你将没有任何问题,因为JavaFX在JVM上运行,JVM是一种用于套接字连接的老式媒体。 Here is a nice tutorial on Socket communication.

虽然我更喜欢在HTTP上使用JSON,而不是使用套接字来执行此操作。

您想要浏览的链接:

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

注意: 用户没有使用 node.js 的经验,因此您可以考虑优势并将其与您对node.js的优势进行比较。客户端。