JavaScript 对于前端监测后端事件,有什么好的设计方法?轮询,or

dddd1919 · 2013年08月26日 · 最后由 dddd1919 回复于 2013年08月31日 · 4988 次阅读

最近在搞树莓派的 gpio 控制,想做一个实时监控针脚状态的 web 控制程序。现在要做的就是一个前台的显示界面,当针脚变为输入状态后在前端实时显示针脚的电压状态。 目前想到的是做个 ajax 轮询,但是有个问题就是 gpio 有 26 个针脚,只有当针脚为输入状态时才需要监控。

  1. 如果每个针脚做一个轮询,26 个是不是太多?
  2. 如果用一个轮询来监测所有针脚的状态,当在监测的过程中有一个针脚切换为输入,ajax 要重新发送一个轮询请求,但后台的轮询请求正在等待针脚变化,该如何处理?可以直接用请求中断请求?或者。。。。。

刚把输出控制的搞定了,发现如果把输入输出混合控制做一块还真是有点乱啊,求高手指点一二!!!!!3ks(纯码字无代码)

我不知道引入实时技术可以解决否》?

#1 楼 @small_fish__ 具体的 能不能介绍下?

#3 楼 @kikyous 尝试了下 comet,对于我这种请求不固定而且需要打断请求的情况,服务器这头不太好处理

#5 楼 @liuzhe 可以借鉴一下,看看他的 real time update 能不能跟 ruby 里用

websocket 或者 sse 都行。前者是前后端长连接互通信息,后者是长连接,后端有信号了向前端发,但是前端不能反馈。

#7 楼 @jyz19880823 sse 另写个路由控制

faye 集成特别简单

#9 楼 @chucai 看文档是可以和 sinatra 混用,回头试试

我的这个项目不知道能不能帮助你. https://github.com/lvjian700/node-pusher 非常简单的 realtime 服务器,基于 node.js 的 Socket.IO 模块。

#11 楼 @lvjian700 谢谢!对比几个看看

13 楼 已删除

#9 楼 @chucai 是个好东西,很轻巧,解决了!多谢 🙏

node 的 faye,socket.io 就是干这个。

@jimrokliu @chucai 开发板有二十多针脚,当针脚切换到输入时才要用 faye 监测,每个针脚单开一个频道有没有不妥?可能(几率很小)会有并发的情况

#16 楼 @dddd1919 没有问题,faye 内部其实只有一个连接,多个频道对 faye 来说也是内部合并处理的。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号