【问题标题】:using server push methods without browser使用没有浏览器的服务器推送方法
【发布时间】:2013-07-29 01:11:48
【问题描述】:

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

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

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

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

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

现在有点愚蠢的是服务器端 JavaScript,哈哈,是的,我问过......也许有一些我不知道的东西......

我希望这里有人可以帮助你寻求知识

谢谢JT

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

【问题讨论】:

  • 如果不是网页浏览器,真的需要使用http吗?为什么不使用更适合您需要的其他协议?
  • 请建议我在这里学习,但我真的不知道轮询我的数据库以进行更改的替代方法。
  • 我目前可以发出http请求,但绝不是浏览器
  • 我首先想到的是一个socket,可以保持打开状态。但是如何实现客户端取决于您使用的设备/软件。
  • 是的,我不确定我是否可以通过客户端上的套接字处理这个问题,但我需要调查

标签: php javascript http websocket push


【解决方案1】:

如果您需要坚持使用 HTTP 协议(​​请参阅 cmets 了解其他可能的方法),请阅读 meta refresh HTML header。这在没有客户端脚本的情况下完成了您的要求。

另一个可能的事情是将您的数据库更新设置为RSS feed

不使用 HTTP 确实感觉更好。

非基于 HTTP 的注释:

  • 1) 您能否执行当前的 HTTP 请求,稍稍休眠,然后重复相同的过程?
    • 没有什么特别的或原创的;但这基本上是其他选项正在做的事情。
  • 2) 使用相同的套接字,阻塞读取将允许您在数据可用时立即获取更多数据
    • 网络服务器可能需要调整配置以充当流媒体服务器。
    • 38951
  • 作为讨论,不是解决方案,看看 streaming media

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    相关资源
    最近更新 更多