我正在使用python3.5作为后端,针对前端的javascript + react / redux和Django服务器的Web应用程序。
该应用程序的目标是实时显示由运行在不同协议(MQTT,XMPP和CoaP)下的树莓派PI发送的数据。我告诉django服务器向处理不同协议的不同服务器发出get请求,然后将这些数据保存到数据库中,最终我可以将其检索到redux存储中,然后在客户端上显示这些数据。
我希望能够删除数据库中的保存部分,这意味着我的Django服务器必须将接收到的数据直接转发到客户端。
我进行了一些研究,似乎websocket编程是实现此目标的最佳方法,但是我有这样一种不同的体系结构,因此我不确定是否可以使用它,除非我从头开始重新启动,这很糟糕。如果您有任何其他想法可以做我想要的事情,或者您有一些建议来改变我的应用程序,那就太好了。
最佳答案
我也遇到过类似的问题,有几种解决方法。我认为最好的是使用server-sent events像这样:
在javascript客户端中:
var evtSource = new EventSource("myScriptInRpi");
evtSource.onmessage = function(e) {
//code
}
好处是您可以将数据直接从树莓派PI发送到客户端。但是,如果您希望从django中获得它,则可以这样做。