我已成功在服务器中打开一个websocket连接到外部API以获取交换自动收报机数据但不确定如何连续将数据推送到客户端/ AngularJS。
这是路由器代码:
router.get('/live-ticker', function(req, res) {
var autobahn = require('autobahn');
var wsuri = "wss://api.poloniex.com";
var connection = new autobahn.Connection({
url: wsuri,
realm: "realm1"
});
connection.onopen = function(session) {
function tickerEvent(args, kwargs) {
res.json(args);
console.log(args);
}
session.subscribe('ticker', tickerEvent);
}
connection.onclose = function() {
console.log("Websocket connection closed");
}
connection.open();
});
我正在尝试做的是让tickerEvent
的数据实时更新前端的控制器:
app.controller('liveTickerController', function($scope, $http) {
$scope.ticker = [];
var request = $http.get('/live-ticker');
request.success(function(ticker) {
console.log(ticker); //only logging data once
$scope.liveTicker = ticker;
});
request.error(function(err) {
console.log('Error: ' + err);
});
});
如何将实时更新推送到客户端?
谢谢
答案 0 :(得分:2)
您需要定期从服务器推送数据。
要在客户端获得这些“实时更新”,简单的ajax调用是不够的, 你需要实时沟通。
你应该在这里使用websoket,socket.io和angular socket.io例如你可以轻松处理这种沟通