了解如何在javascript/HTML5/NodeJS中实现客户端-服务器-客户端基础结构

Ideas how to implement a client-server-client infrastructure in javascript/HTML5/NodeJS

本文关键字:客户端 服务器 结构 实现 NodeJS javascript 了解 HTML5      更新时间:2023-09-26

我目前正在做一个项目,其中基础设施必须如下所示:

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

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

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

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

您将如何实现该架构,仅使用HTML显示客户端1和2,javascript用于服务器和客户端之间的通信以及NodeJS作为服务器核心?

任何想法都会受到欢迎,我试图实现它,但我的逻辑在某些时候失败了! :)

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

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

您可以以 Socket.io 为例。有关进一步的指针,您可以查看以下问题:与 Node.js 一起使用哪个 websocket 库?

许多库在 WebSocket 上提供了一个额外的抽象层,并允许您在不关心底层协议的情况下实现实时功能。其中一条评论中提到的 Meteor 框架就是这样一回事 - 它在引擎盖下使用 WebSockets 和 HTTP,具体取决于您的工作。

这完全取决于你想要多少控制权。你必须知道你想自己做多少工作,以及你想由第三方为你做多少工作。