如果找到了这个,则您正在通过Websocket寻找实时数据。这是开始并找到一种表达自己的独特方法的正确地方。
课程假设您对Nodejs一无所知。但是,事先的编程知识,尤其是使用JavaScript,将是有利的。如果JavaScript和nodejs不是您的事情,则可以使用各种WebSocket实现,例如Python和GoLang。
在开始设置和代码之前,它将帮助您了解我们正在尝试做什么。通过连接到Tradermade Websocket API,我们将下载Nodejs并配置我们的环境以通过Websocket(服务器端)接收实时FX和CFD(索引)数据。
按照以下三个步骤保持简单:
- 安装nodejs和环境
- 开始免费试用并获得API密钥
- 安装nodejs websocket客户端并接收数据
让我们开始!
在Windows和Mac上安装Nodejs和环境:
NodeJS linux下载和安装:
运行apt-get安装nodejs
安装nodejs之后打开命令提示符或终端,以获取操作我们客户端所需的依赖项(库)。因为我们将使用“ WS”,所以执行以下操作:
npm install ws
这就是我们需要开始的全部。让我们去拿钥匙。
设置试验并获得API键。
您可以通过遵循有关如何开始免费14天试用的帖子来做到这一点。有钥匙后,请将其保持在安全的地方。
配置Nodejs WebSocket客户端以接收数据
一旦准备就绪,请导航到nodejs安装目录,然后创建一个名为forexwsclient.js的文件。现在,以原子或Visual Studio代码打开文件。术语“虚拟现实”是指使用虚拟现实软件。
现在是时候编写一些代码了。
const WebSocket = require ('ws');
const ws = new WebSocket ('wss://marketdata.tradermade.com/feedadv');
我们将首先导入Websocket对象,然后使用WSS URL将其连接到交易。建立连接后,我们将发送我们的API密钥(通过注册Websocket试用)以及我们要从服务器接收的符号。在这种情况下,使用了GBPUSD和UK100(FTSE100的代码)。
ws.on('open', function open() {
ws.send("{"userKey":"streaming_api_key", "symbol":"GBPUSD,UK100"}");
});
ws.on('message', function incoming(data) {
if(data != "Connected"){
data = JSON.parse(data)
console.log(data)
}
});
成功身份验证后,我们将开始从消息中接收JSON数据。实际上很容易。
首先,保存forexwsclient.js的文件,然后从文件的位置中键入以下内容:
节点forexwsclient.js
tada!我们有一个实时的FX数据提要。
{
symbol: 'UK100',
ts: '1615913144126',
bid: 6795,
ask: 6798,
mid: 6796.5
}
{
symbol: 'GBPUSD',
ts: '1615913144331',
bid: 1.38967,
ask: 1.38969,
mid: 1.38968
}
我们可以做更多的事情来提高其稳定性,例如重新连接服务器或错误是否断开连接。否则,我们将不会意识到连接损失。
无法逃脱这样的事实:有很多事情要做。运行应用程序时,我们将WS对象和事件封装在称为连接的函数中。当连接关闭时,我们还设置了超时功能。这样可以确保保持沟通。
const WebSocket = require ('ws');
var reconnectInterval = 1000 * 10
var ws;
var connect = function(){
const ws = new WebSocket ('wss://marketdata.tradermade.com/feedadv');
ws.on('open', function open() {
ws.send("{"userKey":"streaming_api_key", "symbol":"GBPUSD,UK100"}");
});
ws.on('close', function() {
console.log('socket close : will reconnect in ' + reconnectInterval );
setTimeout(connect, reconnectInterval)
});
ws.on('message', function incoming(data) {
if(data != "Connected"){
data = JSON.parse(data)
console.log(data)
}
});
};
connect();
当我们运行上述软件时,我们的客户将不会退出。它将随时随地连接到服务器。