如何自动将数据从服务器重定向到客户端

Posted

技术标签:

【中文标题】如何自动将数据从服务器重定向到客户端【英文标题】:How to redirect data automatically from server to Client 【发布时间】:2018-07-06 17:20:35 【问题描述】:

我正在开发一个 web 应用程序,使用 python3.5 作为后端,javascript +react/redux 作为前端和一个 Django 服务器。

应用程序的目标是实时显示一些运行在不同协议(MQTT、XMPP 和 CoaP)下的树莓派 PI 发送的数据。我告诉我的 django 服务器向处理不同协议的不同服务器发出 get 请求,然后将这些数据保存到数据库中,我最终可以将其检索到我的 redux 存储中,然后将它们显示在我的客户端上。

我希望能够删除数据库部分的保存,这意味着我的 Django 服务器必须将它接收到的数据直接转发到客户端。

我已经进行了一些研究,似乎 websocket 编程是最好的方法,但是我有一个不同的架构,所以我不确定我是否能够使用它,除非我从头开始重新启动会很糟糕。如果您有任何其他想法可以做我想做的事情,或者您有一些建议来改造我的应用程序,那就太好了。

【问题讨论】:

【参考方案1】:

我也遇到过类似的问题,有几种方法可以解决。在我看来,最好的方法是像这样使用server-sent events:

在javascript客户端中:

var evtSource = new EventSource("myScriptInRpi");

evtSource.onmessage = function(e) 
  //code

优点是您可以直接从树莓派向客户端发送数据。但是如果你想从django 那里得到它,你可以做到。

【讨论】:

以上是关于如何自动将数据从服务器重定向到客户端的主要内容,如果未能解决你的问题,请参考以下文章

node服务器重定向

客服端重定向和服务器重定向

Javascript发布请求回调,从.NET MVC控制器重定向

如果已安装,则将用户从 iOS 浏览器重定向到 App,如果未安装,则将用户重定向到 App Store - 像 Yelp

如何使用 $.get() 检测服务器重定向

浏览器302重定向传递hash