Websocket como? - página 23

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

Assim, você mesmo expressa como gostaria de poder desfrutar do processo. Basta entender: o servidor não pode ser solicitado por um castiçal específico, apenas uma gama de castiçais para datas selecionadas. Portanto, pense nessa direção.

Então, seria melhor escrever os dados em um arquivo. Eu não entendo como adicionar uma pasta

 
Encontrei-a, acrescentei-a
 
Maxim Kuznetsov:

é possível intervir?

Ninguém quer fazer uma classe/interface no lado MT com antecedência?

ou seja, dar um TdR específico que seja discutido e aplicável.

vamos começar:


class Hibou {

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

~Hibou();

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

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

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

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

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

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

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

}

Não pode ! VOCÊ TEM QUE FAZER ISSO! Quanto mais partes interessadas se envolverem, melhor!

Normalmente em [Event|Connect|Message] e assim por diante são usados para notificar que o evento ocorreu, mas não temos a capacidade de notificar a MT, tal modelo de evento infelizmente não existe, não podemos passar mensagens para a MT((((

Assim, ficamos apenas com um método de sondagem periódica de mql, por exemplo, por um timer minúsculo. (((

E para que tudo aconteça corretamente... Todos que leram o mql de ajuda notaram muitas vezes a expressão "os eventos estão em fila de espera", e os desenvolvedores, incluindo Renat, nos dizem a cada passo que todos os eventos terminais são síncronos e são processados em ordem de fila, e todos os eventos do sistema e do terminal são colocados nesta mesma fila e processados sequencialmente. Esta é a razão pela qual na primeira edição eu sugeri utilizar o mesmo mecanismo de intercâmbio: a fila.

 

Conecte a biblioteca WebSocket4Net dos pacotes Nuget ao nosso projeto.

Descreva a classe do soquete. Acrescente-se a ela a propriedade IsOpen, que será responsável pelo fato de que o soquete está aberto.

Literalmente formalizamos levemente a classe do soquete, escrevemos as informações necessárias através das dicas de contexto.


A seguir, refinamos o gerente global. Em seu construtor estático, criaremos imediatamente uma instância do soquete, de modo a não esquecê-lo.


Ouvi Maxim e acrescentei ao gerente global o método de conexão com um corretor específico. Será conveniente em caso de desenvolvimento para outros corretores.

Estamos refinando o web-socket e criando manipuladores de eventos para o próprio soquete.


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


Escutei Maxim e acrescentei um método de conexão específico do corretor ao gerente global. Será conveniente se houver desenvolvimento para outros corretores

você deve ter estado escutando com seu terceiro olho :-)

 
Maxim Kuznetsov:

você deve ter estado escutando com seu terceiro olho :-)

Max, você sugeriu criar uma classe, mas nós temos a classe GlobalManager para métodos gerais e não vejo nenhum sentido em criar uma classe específica separada.

Quanto à interface para MT, teremos a classe ConnectorMQL, quando testaremos todos os nossos métodos no modo console.

Se eu tiver algo errado, por favor, me corrija, tente fazer seu ponto de vista um pouco diferente, não tire conclusões precipitadas.

P.S. Naturalmente, você pode fazer não apenas um ponto de entrada universal como ConnectorMQL, mas na verdade uma classe separada HuobiMQL, que enviará comandos especializados para o gerente global.
 
Алексей Барбашин:

Algo que eu não consigo ver


 
Fedor Arkhipov:

Não consigo vê-lo.


Parece bem, não está sublinhado. Mas você deve colocar um ponto-e-vírgula no final da linha.

 

Eu adicionei uma pasta de pontos e fiz uma classe HuobiMQL nela


Nos eventos de abertura e fechamento de uma tomada, acrescentei a definição da propriedade estatal da tomada


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

Max, você sugeriu criar uma classe, mas temos a classe GlobalManager para métodos gerais, e ainda não vejo nenhum sentido em criar uma classe específica separada.

Quanto à interface com MT, teremos a classe ConnectorMQL mais tarde, quando testaremos todos os nossos métodos no modo console.

Se eu tiver algo errado, me corrija, tente fazer seu ponto de vista um pouco diferente, não tire conclusões precipitadas.

No lado do design: é muito mais simples - @Fedor Arkhipov(autor do tópico e autor da iniciativa) declara "Eu quero que seja assim, mas agora preciso do Hibou". E pequenas/acordadas correções de nós, pessoas pobres :-) Porque é ele quem sabe do que se trata a idéia toda.

Eu, por exemplo, não estou claro sobre o propósito de muitas aulas, mas isso são as minhas mágoas...

Você precisa obter a coisa da forma mais compacta - você tem uma resposta inteligível e um fluxo agradável, e resolveu os bugs. Você pode ter centenas de hierarquias de classes e métodos :-)

Razão: