我想创建一个显示实时股票图表的主页。我还想为某些指标安装筛选功能。因此,我需要大约数千家公司的实时股票数据。我想获得的数据应该在很短的时间内(大约 5 秒)收到。最苛刻的部分是我想在很短的时间内一次性接收它们并将它们保存在表格中以用于其他一些功能。我刚刚找到了一些从雅虎或类似的东西获取 CSV 数据的方法。但这种方法是以减慢时间段为前提的。
我不确切知道这种方法是否有一个通用术语,但我真的很高兴能获得一些关于一些方法来解决这个问题的信息。
我想创建一个显示实时股票图表的主页。我还想为某些指标安装筛选功能。因此,我需要大约数千家公司的实时股票数据。我想获得的数据应该在很短的时间内(大约 5 秒)收到。最苛刻的部分是我想在很短的时间内一次性接收它们并将它们保存在表格中以用于其他一些功能。我刚刚找到了一些从雅虎或类似的东西获取 CSV 数据的方法。但这种方法是以减慢时间段为前提的。
我不确切知道这种方法是否有一个通用术语,但我真的很高兴能获得一些关于一些方法来解决这个问题的信息。
至少对于前端,您需要实现一个 ajax 例程来提取股票数据并相应地填充您的页面 - 您可以将此 ajax 例程粘贴在 setInterval javascript 调用中(每 5 秒设置一次)。这样,您无需刷新页面即可获得实时更新。
至于后端——我不了解股票报价网站的最新情况,但如果其中一个较大的网站有免费的 API,你可以通过它访问,我不会感到惊讶。一种带有 PHP 的服务器端语言 - 但是我不确定他们免费提供的最小间隔 - 无论如何,这是您的 javascript/ajax 例程将调用的脚本。
您需要实现 web socket 服务器或用户 web socket api 来获取数据。有几个提供证券交易所数据的 API。这是我的建议。
在 NodeJS 服务器上,您可以从 api 检索股票数据,例如检查此链接。一旦你有了数据,你就可以通过套接字发出它,在客户端你可以监听事件。
使用 bittrex 和 NodeJS 服务器的用例。
bittrex.websockets.client(function() {
console.log('Websocket connected');
bittrex.websockets.subscribe(['BTC-ETH'], function(data) {
if (data.M === 'updateExchangeState') {
data.A.forEach(function(data_for) {
console.log('Market Update for '+ data_for.MarketName, data_for);
});
}
});
});