这真的取决于什么是最简单的解决方案,以及您的要求是什么。 (如果您想进行实时双向通讯那么我建议使用,而不是POST
例如socket.io客户端)
POST(GET,PUT,...)
您可以(例如)使用POST
请求从你的Django到节点
Django的:python
例子(还有其他的方式来执行POST从Django中到节点)
reqParams = {"action":"doThis","data":"put the pizza in the oven"}
import requests
requests.post('http://ip:port/route', params = reqParams)
节点例如:侦听后在/route
(快递),并打印Django的请求
var express = require('express');
var app = express();
app.post('/route', function (req, res) {
console.log(req.query); res.end();
});
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
然后你可以使用该资料req.params
像广播东西到socket.io
客户执行操作的PARAMS (或特定的客户端)
这也可以做周围的其他方式,执行请求从节点发送数据使用到的Django POST (GET,...)
Socket.io-client
在Django
另一个(容易)解决方案是包括socket.io-client
在你的Django Web应用程序,所以当web应用程序是通过浏览器打开它连接到您的节点socket.io
服务器作为客户端。
(在Django使用javascript)
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io('http://ip:port');
socket.on('connect', function(){alert("Hello World!");});
socket.on('event', function(data){});
socket.on('disconnect', function(){});
</script>
更多资源: 1. JavaScript (Django Docs) 2。Including the static files in your template
来源
2017-08-28 00:11:35
EMX
不错,第一个解决方案看起来很聪明我会试试看,并让你知道。关于第二种解决方案:除非我错过了一些东西,这只会将用户连接到socket.io,而不是django服务器本身?我不明白我如何使用这种方法来进行通信Django - > client –
@RyanPergent我不知道你的确切场景,这就是为什么我建议这两个,所以你可以认为哪种解决方案最适合你(如果你想要webapp用户像客户端连接** socket.io **/else如果你想把webapp本身作为一个'客户端'然后使用** request **)。 – EMX
第一种方法工作得很好,唯一的就是'req.query'而不是'req.params' :)。谢谢! –