Websocket은 어떻게 하나요? - 페이지 23

 
Алексей Барбашин :

그래서 당신은 그 과정을 스스로 즐기고 싶은 방식을 표현합니다. 이해하십시오: 서버에서 특정 촛불을 요청할 수 없으며 선택한 날짜에 대해서만 일정 범위의 촛불을 요청할 수 있습니다. 따라서 그 라인을 따라 생각하십시오.

그런 다음 데이터를 파일에 쓰는 것이 좋습니다. 폴더 추가 방법을 모르겠습니다

 
발견, 추가
 
Maxim Kuznetsov :

당신은 개입할 수 있습니까?

아무도 미리 만들고 싶지 않은 MT의 클래스/인터페이스??

즉, 논의되고 실행 대상인 특정 TK를 제공합니다.

그럼 시작하겠습니다:


class Hibou {

Hidou(string url=HIBOU_WS_URL);  // думаю почти бесспорно

~Hibou();

void DoEvent(); // веб-сокеты асинхронны, а может в тредах реализуем, будем дёргать при первой возможности

int State(); // некое текущее состояние

/// хенды по событиям протокола, вызываемые из DoEvevnt

virtual void OnConnect();  //  соеденились - зашибись

virtual void OnMessage(string json); // получили внятный Event

/// и так далее - заказчик представляет как он намерен использовать интерфейс.

/// если он этого не знает, мы за него ничего придумать не можем, клиника в руках пациентов

}

허용되지 않습니다! 필수! 관심있는 분들의 많은 참여 바랍니다!

보통 켜짐[이벤트| 연결| Message ] 등은 이벤트가 발생했음을 알리는 데 사용되지만 MT에 알릴 수 있는 기능이 없습니다. 불행히도 이러한 이벤트 모델이 없기 때문에 MT에 메시지를 보낼 수 없습니다(((

따라서, 예를 들어 빈약한 타이머에 의해 mql 측면에서 샤프를 주기적으로 폴링하는 방법만 남게 됩니다. (((

모든 것이 올바르게 발생하도록... mql 도움말을 읽은 모든 사람은 이벤트가 큐에 대기된다는 표현을 한 번 이상 알아차렸으며, Renat를 포함한 개발자는 말 그대로 모든 단계에서 모든 터미널 이벤트 가 동기식이며 순서대로 처리되고 모든 시스템 이벤트와 터미널 이벤트는 이 동일한 대기열에 배치되고 순차적으로 처리됩니다. 이러한 이유로 내가 초판에서 동일한 교환 메커니즘인 대기열을 사용하도록 제안했습니다.

 

Nuget 패키지의 WebSocket4Net 라이브러리를 프로젝트에 연결합니다.

소켓 클래스를 설명합니다. 소켓이 열려 있다는 사실을 담당하는 IsOpen 속성을 추가해 보겠습니다.

말 그대로 소켓 클래스를 약간 장식하고 컨텍스트 힌트를 통해 필요한 사용을 규정합니다.


나아가 글로벌 매니저를 확정합니다. 정적 생성자에서 잊지 않도록 소켓의 인스턴스를 즉시 생성합니다.


맥심의 말을 듣고 글로벌 매니저에 특정 브로커와의 연결 방식을 추가했다. 다른 브로커에 대한 개발이 있으면 편리 할 것입니다

웹 소켓을 완성하고 소켓 자체에 대한 이벤트 핸들러를 만듭니다.


 
Алексей Барбашин :


맥심의 말을 듣고 글로벌 매니저에 특정 브로커와의 연결 방식을 추가했다. 다른 브로커에 대한 개발이 있으면 편리 할 것입니다

제3의 눈으로 듣는 것 같아요 :-)

 
Maxim Kuznetsov :

제3의 눈으로 듣는 것 같아요 :-)

Max, 클래스 생성을 제안했지만 일반적인 메서드에 대한 GlobalManager 클래스가 있으며 별도의 특정 클래스를 생성하는 것은 여전히 의미가 없습니다.

MT와 통신하기 위한 인터페이스에 관해서는 미래에 콘솔 모드에서 모든 메소드를 테스트할 때 ConnectorMQL 클래스를 갖게 될 것입니다.

내가 뭔가를 잘못 이해했다면 정정하고 당신의 생각을 조금 다르게 전달하려고 노력하고 성급한 결론을 내리지 마십시오.

추신 물론, ConnectorMQL 유형의 범용 진입점을 만들 수 있을 뿐만 아니라 실제로 전역 관리자에게 특수 명령을 보낼 별도의 HuobiMQL 클래스를 만들 수도 있습니다.
 
Алексей Барбашин :

내가 볼 수 없는 것 sslProtocols


 
Fedor Arkhipov :

뭔가 나를 볼 수 없습니다 sslProtocols


예, 모든 것이 괜찮은 것 같지만 밑줄이 그어져 있지 않습니다. 그러나 줄 끝에 세미콜론을 넣어야 합니다.

 

Points 폴더를 추가하고 그 안에 HuobiMQL 클래스를 만들었습니다.


소켓 열기 및 닫기 이벤트에 소켓 상태 속성 설정 추가


 
Алексей Барбашин :

Max, 클래스 생성을 제안했지만 일반적인 메서드에 대한 GlobalManager 클래스가 있으며 별도의 특정 클래스를 생성하는 것은 여전히 의미가 없습니다.

MT와 통신하기 위한 인터페이스에 관해서는 미래에 콘솔 모드에서 모든 메소드를 테스트할 때 ConnectorMQL 클래스를 갖게 될 것입니다.

내가 뭔가를 잘못 이해했다면 정정하고 당신의 생각을 조금 다르게 전달하려고 노력하고 성급한 결론을 내리지 마십시오.

디자인 측면에서: 모든 것이 훨씬 간단합니다. @Fedor Arkhipov (주제 작성자 및 개시자)는 "이것이 정확히 이와 같기를 원하며 특히 Hibou가 지금 필요합니다"라고 선언합니다. 그리고 사소한 / 우리의 조정에 동의했습니다. :-) 왜냐하면 전체 아이디어를 알고있는 사람이기 때문입니다.

예를 들어, 많은 수업의 목적이 명확하지 않지만 이것들은 내 바퀴벌레입니다 ...

젠장, 당신은 그것을 필요로합니다. 그래서 당신은 가장 간결한 형태로 물건을 얻습니다. 당신은 신청하고, 명확한 답변과 스트림을 얻었고, 오류를 분류했습니다. 클래스와 메소드는 수백 개의 계층 구조로 채워질 수 있습니다 :-)