在没有浏览器的情况下使用服务器推送方法


using server push methods without browser

我有一个请求网页的客户端设备。

当数据库表条目发生更改时,我试图将数据发送到客户端。

问题:客户端不是"浏览器",即客户端脚本在这里对我没有任何好处。(它是一个微控制器)

起初,我想使用php和flush命令。我可以经常向客户端输出等待,同时仍处于检查数据库更改的循环中。对我来说,这是一种方法的延伸,因为我认为我的服务器不支持该功能,而且我真的不喜欢它,因为它看起来很"脏":)。。。

接下来,让php使用循环不断地轮询数据库中的更改。客户端应该等到服务器完成,因此我将有一个稳定的连接,"只要发生变化:)乐观的我知道"。考虑到如果连接确实超时,我可以让客户端重新连接。

现在有点傻的是,服务器端JavaScript是一件我问过的事情。。。也许有些事情我不知道。。。

我希望这里有人能帮助寻求知识

感谢JT

我的客户目前:使用8090端口上的tcp连接打开套接字…然后使用我的套接字编号、服务器地址和服务器端口号(80)打开到我的网站的连接。。。我不知道如何将这种类型的套接字与我需要非常谨慎地将数据流传输到客户端的类型相关联。

如果您需要坚持使用HTTP协议(请参阅对其他可能方法的评论),请阅读有关元刷新HTML标头的信息。这在没有客户端脚本的情况下完成了您的要求。

另一种可能的方法是将数据库更新设置为RSS提要。

不使用HTTP的设计确实让人感觉更好。

非基于HTTP的笔记:

  • 1) 你可以只做你当前的HTTP请求,睡眠abit,然后重复同样的过程吗?
    • 没有什么特别的或独创的;但从根本上讲,这是其他选择正在做的事情
  • 2) 使用相同的套接字,阻塞读取将允许您在数据可用时尽快获得更多数据
    • web服务器可能需要调整配置以充当流媒体服务器
    • 38951
  • 作为讨论而非解决方案,请查看流媒体