2017-02-12 5 views
0

내 nodejs/특급 server.js 파일 :ZeroMQ를 사용하여 MetaTrader 터미널에서 FOREX 요금을 보내고 ZeroMQ를 사용하여 nodejs 서버에 로그인하십시오.

const express = require('express'); 
const app = express(); 
const http = require('http').Server(app); 
const io = require('socket.io')(http); 
const path = require('path'); 
const mongoose = require('mongoose'); 
const bodyParser = require('body-parser'); 

const zmq = require('zeromq'); 
const sock = zmq.socket('pull'); 

const port = 3000; 

sock.connect('tcp://127.0.0.1:3000'); 
console.log('Worker connected to port 3000'); 

sock.on('message', function(msg){ 
    console.log('work: %s', msg.toString()); 
}); 

http.listen(port,() => { 
    console.log(`listening on ${port}`); 
}); 

내가이 nodejs 응용 프로그램과 병행하여 로컬로 실행되고 메타 트레이더 터미널에서 tcp://127.0.0.1:3000에 외환 속도를 보내기 위해 어떻게해야합니까?

기본적으로 저는 socket.io를 사용하여 클라이언트에 보내고 싶습니다.

답변

1

전문가의 의견으로는이 기능이 작동한다고 생각합니다. 그것을 시도하지 않았습니다.

#include <zmq_bind.mqh> 

int client,server,context; 

int init() 
{ 
    return(0); 
} 

int deinit() 
{ 
    z_close(client); 
    z_close(server); 
    z_term(context); 
    return(0); 
} 

int start() 
{ 
    Print("using zeromq version "+z_version_string()); 

    context = z_init(1); 
    client = z_socket(context,ZMQ_REQ); //server: receives first 
    server = z_socket(context,ZMQ_REP); //client: sends first 

    if(z_bind(server,"tcp://127.0.0.1:3000")==-1) { 
     return(-1); 
    } 
    if (z_connect(client,"tcp://127.0.0.1:3000")==-1) { 
     return(-1); 
    } 

    z_send(client,"Hello world"); 
    Print("message received is " +z_recv(server)); 

    return(0); 
} 

MT4에서 보낸 버퍼를 어떻게 디코딩할지 알고 싶습니다. node.js에 올바른 인코딩을 읽을 수 없습니다.

+0

이 제안은 구조와 MQL4/ZeroMQ 구현 세부 사항 모두에서 오해의 소지가 있음을 알고 싶을 수도 있습니다. 저는 원격 실행 (비 블로킹) - syslog 통합, 거래 실행 감사 또는 실시간 상호 작용을위한 QOUTE 스트림 데이터의 낮은 대기 시간 수집과 같은 많은 성공적인 통합을 통해 v 2.1.11부터 ZeroMQ/MQL4를 사용합니다. 트레이딩 엔진 및 외부 AI/ML 예측기. ** 당신이 개념을 다시 디자인하고 공정하고 전문적으로 책임있는 방식으로 질문에 답변하려고 노력하는 경우 오도 된/약점을 피하면 답이 향상 될 수 있습니다. ** – user3666197