网页上的实时交互

网页上的实时交互

问题描述:

背景:我有一个微控制器ESP8266,可以通过TCP/IP,UDP甚至使用WiFi的HTTP堆栈来启用连接。一个按钮连接到这个微控制器并触发触发事件。我将这些信息(现在用于测试的UDP)发送给运行HTML轮播(网页)的计算机。我想实时创建按钮和网页之间的交互。我发现一个简单的HTML/CSS/JS网页不允许读取UDP套接字,因此我在计算机上安装了一个Web服务器以使用PHP。网页上的实时交互

注意:实时是指直接交互(低于30毫秒到100毫秒),但在实际数据流中应该没问题。

问题:我在Web实现上挣扎。我在HTML/CSS/JS中找到适当的轮播。我已经在PHP文件中收到了一些UDP数据包,但我不知道如何执行实时交互(触发轮播中的图像更改)。我阅读了Ajax,但它似乎在客户端。事实上我没有Web应用程序设计的背景。

我想知道是否有可能,如果是基本信息开始工作。

虽然我不完全了解您的微控制器设置,但我可以告诉您,实时更改html元素和值是可以实现的。我工作的地方使用Angular.js,它有一个方便的“范围”变量,直接链接到HTML。因此,如果代码中的值发生变化,它也会在网站上发生变化(无需重新加载页面)。开始时相对比较简单,但先查看演示或其他东西,也许我理解错误的问题。

https://angular.io/

是的,这是绝对有可能的。你的两个选项是轮询和websocket。如果您的后端是PHP,我会开始编写一些JavaScript以每200毫秒轮询给定URL处的服务器。处理该URL端点的PHP代码然后会从某个数据存储中读取值,比如说memcached中的缓存键。

  1. 按下按钮
  2. UDP报文发送
  3. PHP代码接收UDP消息并设置缓存键
  4. 当你的投票代码运行下一次会收到更新的数据,然后可以在显示值的网页。

这是一个非常基础的(和低效的)设置,但它很简单,应该让你开始。

我们正在努力解决这个问题,并最终使用NGINX和PUSH模块。

它允许服务器(NGINX)的Post消息被推送到浏览器上显示的网页。

在我们的设置中,控制器将一个包含JSON数据的POST发送到运行NGINX的小型Linux主板。 NGINX然后将其发送给任何用户。该网页包含几行js代码以订阅订阅源。当JSON到达页面时,它会触发js接收代码,并且我们更新网页中显示的字段。该设置非常灵敏,没有测量延迟,似乎在60ms内。