如何在JavaScript/HTML5/NodeJS中实现客户端-服务器-客户端基础架构的想法

3

我目前正在处理一个项目,该项目的基础架构必须如下所示:

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

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

例如,客户端 1 可能是一个平板电脑,上面有一个简单按钮,假设它有一个 ID 为 1。

我需要在客户端 2 上显示,假设客户端 2 是连接到运行 Linux (Raspberry Pi) 的机器上的电视,该按钮 ID 1 在平板电脑上被按下了。

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

欢迎任何想法,我尝试过实现它,但我的逻辑在某些时候出错了! :)


3
Meteor和Derby是Node.js框架,它们实现了你所要求的客户端-服务器功能。 - Explosion Pills
1
谢谢你,这似乎是我正在寻找的。我一定会试试看! - Max Methot
1
哦,我刚意识到 Meteor 不支持我正在尝试实现的 Linux 架构,即 Raspberry Pi 上的 ARM。一开始忘了提到这一点,我编辑了我的初始问题。 - Max Methot
1个回答

3
似乎您所描述的是实时功能。您所描述的本质上类似于聊天系统,只是更加细粒度和结构化。问题不在于您用什么技术来呈现它,而在于客户端和服务器之间使用的协议。
通常,HTTP 不太适用于实时应用程序。一种试图解决您遇到问题的技术是 WebSockets。NodeJS 支持 WebSockets,新版浏览器也支持,因此您可以寻找不同的库和实现。请记住,使用 WebSockets 协议时,您在客户端上使用的工具取决于您在服务器上使用的工具,反之亦然。
您可以参考 Socket.io 作为示例。有关进一步指导,请参阅以下问题:Which websocket library to use with Node.js? 许多库提供了WebSocket的额外抽象层,让您实现实时功能而不必关心底层协议。在评论中提到的Meteor框架就是这样一种东西 - 它根据您的操作使用WebSocket和HTTP。 这只是控制程度的问题。您必须知道自己要做多少工作,以及第三方要为您完成多少工作。

1
感谢你详细的回答,Slavo,我非常感激。我已经尝试了Socket.io,到目前为止,我发现它是最容易使用的。我仍然在努力尝试弄清楚如何实现我想要的东西,但这是我的另一个问题,我知道我正在正确的轨道上! :) - Max Methot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接