3

我目前正在从事一个基础设施必须如下所示的项目:

[客户端 1] ----------- [服务器] ----------- [客户端 2]

客户端 1 必须激活一个按钮,这将在服务器上触发一个事件。然后,客户端 2 必须侦听该特定事件以显示该值。

例如,客户端 1 将是一个平板电脑,具有一个 ID 为 1 的简单按钮,比方说。

我必须能够在客户端 2 上显示,让我们假设一台电视插在 linux (Raspberry Pi) 机器上,在平板电脑上按下按钮 ID 1。

您将如何实现该架构,仅使用 HTML 显示客户端 1 和 2,使用 JavaScript 在服务器和客户端之间进行通信,并将 NodeJS 作为服务器核心?

欢迎任何想法,我试图实现它,但我的逻辑在某些时候让我失望了!:)

4

1 回答 1

3

您所描述的似乎是实时功能。您所描述的本质上类似于聊天系统,只是更细粒度和结构化。这不是您使用什么技术来呈现它的问题,而是您用于在客户端和服务器之间进行通信的协议的问题。

通常,HTTP 不太适合实时应用程序。尝试解决您遇到的问题的技术是WebSockets。NodeJS 支持 WebSockets,新的浏览器也支持,所以你可以四处寻找不同的库和实现。请记住,在使用 WebSockets 协议时,您在客户端使用的工具取决于您在服务器上使用的工具,反之亦然。

您可以以Socket.io为例。有关进一步的指示,您可以查看这个问题:Which websocket library to use with Node.js?

许多库在 WebSockets 之上提供了一个额外的抽象层,让您无需关心底层协议即可实现实时功能。其中一条评论中提到的 Meteor 框架就是这样的东西——它在底层使用 WebSockets 和 HTTP,这取决于你做什么。

这完全取决于您想要多少控制。您必须知道自己想完成多少工作以及第三方为您完成多少工作。

于 2013-10-23T13:17:50.617 回答