如何将实时数据从 nodejs 服务器推送到 AngularJS?
Posted
技术标签:
【中文标题】如何将实时数据从 nodejs 服务器推送到 AngularJS?【英文标题】:How to push live data from nodejs server to AngularJS? 【发布时间】:2017-05-19 19:42:50 【问题描述】:我已经成功地在服务器中打开了一个到外部 API 的 websocket 连接以获取交换代码数据,但不确定如何将数据持续推送到客户端/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);
);
);
如何将实时更新推送到客户端?
谢谢
【问题讨论】:
【参考方案1】:您需要定期从服务器推送数据。
要在客户端获得这些“实时更新”,简单的 ajax 调用是不够的, 您需要实时通信。
即使在这里你也应该使用 websoket,例如 socket.io 和 angular socket.io 你可以轻松处理这种通信
【讨论】:
谢谢,我一直在研究并提出了相同的方向以上是关于如何将实时数据从 nodejs 服务器推送到 AngularJS?的主要内容,如果未能解决你的问题,请参考以下文章
如何将新数据从实时数据库推送到 Cloud Firestore?