using System;
using System.Text;
using System.Threading.Tasks;
using System.Net.WebSockets;
using System.Threading;
using System.Net;
namespace BinaryWSDemo
{
class BinaryWS
{
private ClientWebSocket ws = new ClientWebSocket();
private Uri uri = new Uri("wss://ws.binaryws.com/websockets/v3?app_id=1089");
public async Task SendRequest(string data)
{
while(this.ws.State == WebSocketState.Connecting){};
if (this.ws.State != WebSocketState.Open)
{
thrownew Exception("Connection is not open.");
}
var reqAsBytes = Encoding.UTF8.GetBytes(data);
var ticksRequest = new ArraySegment<byte>(reqAsBytes);
await this.ws.SendAsync(ticksRequest,
WebSocketMessageType.Text,
true,
CancellationToken.None);
Console.WriteLine("The request has been sent: ");
Console.WriteLine(data);
Console.WriteLine("\r\n \r\n");
}
public async Task StartListen(){
WebSocketReceiveResult result;
while (this.ws.State == WebSocketState.Open){
var buffer = new ArraySegment<byte>(newbyte[1024]);
do
{
result = await this.ws.ReceiveAsync(new ArraySegment<byte>(buffer.Array), CancellationToken.None);
if (result.MessageType == WebSocketMessageType.Close)
{
Console.WriteLine("Connection Closed!");
break;
}
else
{
var str = Encoding.UTF8.GetString(buffer.Array, 0, result.Count);
Console.WriteLine("Received Data at: " + DateTime.Now);
Console.WriteLine(str);
Console.WriteLine("\r\n");
}
} while (!result.EndOfMessage);
}
}
public async Task Connect(){
Console.WriteLine("Prepare to connect to: " + this.uri.ToString());
Console.WriteLine("\r\n");
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
await ws.ConnectAsync(uri, CancellationToken.None);
Console.WriteLine("The connection is established!");
Console.WriteLine("\r\n");
}
staticvoid Main(string[] args)
{
string data = "{\"ticks\":\"R_100\"}";
var bws = new BinaryWS();
bws.Connect().Wait();
bws.SendRequest(data).Wait();
bws.StartListen();
Console.ReadLine();
}
}
}
Cercando di eseguirlo in Visual Studio il codice è C#
Fedor, qual è lo scopo di chiedere aiuto sul forum? Nessuno vi darà un esempio pronto, perché ogni progetto è unico. Solo i mattoni possono essere uguali. Questo è esattamente ciò che vi offrono.
Cominciamo con una facile: hai qualche esperienza di programmazione? Almeno in mql? Sai cos'è una "classe" nella programmazione?
Ho un compito per ricevere quotazioni da huobi via websocket e costruire un grafico offline usando queste quotazioni.
Ho capito che questo non può essere fatto con mezzi standard.
Ho un' idea per scrivere una dll in java e usarla per ricevere le citazioni.
È possibile una tale implementazione?
Non ho mai fatto niente del genere prima, quindi vi sarò molto grato per il vostro aiuto!
Se vuoi usare Mql DLL per chiamare Java, è più figo delle tonsille via gp :-)
Ma se lo volete davvero, potete farlo. Ma in aggiunta, dovete conoscere il C a un livello sufficiente e capire come sono disposti i thread in MT, come e quando vengono creati/trasformati.
ci sono molti articoli su come essere amici di Java e C/C++, la prima ricerca su google dà https://www.codeproject.com/Articles/993067/Calling-Java-from-Cplusplus-with-JNI.
vedere gli articoli locali su come essere amici con C/C++ e Mql
si può una volta sedersi e fare il livello Mql->(c/c++ dll)->Java. Sembra molto materno in termini di debug (le emozioni devono essere tenute sotto controllo), ma una volta fatto poi utilizzare.
PS/ e c'è la sensazione che Mql stia andando verso Sharp, e non è affatto amichevole con Java...quindi nella versione 6 gli sforzi saranno sprecati
How do we return an array of integers from Java to C++. And this question follows up to 2d and 3d arrays as well. Also what would be the method to call Java function (assuming we are calling static function). Example: ID: method = m_pJVMInstance->m_pEnv->GetStaticMethodID(class, "getIntDataS", "([Ljava/lang/String;)[I"); Calling: jint...
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Fedor, dov'eri?
In realtà sono seduto qui, perplesso.
È apparsa una finestra con Usercontrol. Questo è tutto.
Ho trovato questo esempio:
Cercando di eseguirlo in Visual Studio il codice è C#
Questo non funzionerà.ClientWebSocket non è supportato in tutte le versioni di Windows.
Ti ho offerto una via collaudata, ma tu vuoi andare per la tua strada e prendere i tuoi urti. Questo è un suo diritto.
Allora non c'è bisogno di diventare acuti. Se sei bravo con java, puoi usarlo per scrivere DLL.
Non ho detto di essere bravo con il java. L'ho installato, ho creato un progetto e non so cosa fare dopo. Devo cercare degli esempi.
Fedor, qual è lo scopo di chiedere aiuto sul forum? Nessuno vi darà un esempio pronto, perché ogni progetto è unico. Solo i mattoni possono essere uguali. Questo è esattamente ciò che vi offrono.
Cominciamo con una facile: hai qualche esperienza di programmazione? Almeno in mql? Sai cos'è una "classe" nella programmazione?
Sì, certo.
Ciao a tutti!
Ho un compito per ricevere quotazioni da huobi via websocket e costruire un grafico offline usando queste quotazioni.
Ho capito che questo non può essere fatto con mezzi standard.
Ho un' idea per scrivere una dll in java e usarla per ricevere le citazioni.
È possibile una tale implementazione?
Non ho mai fatto niente del genere prima, quindi vi sarò molto grato per il vostro aiuto!
Se vuoi usare Mql DLL per chiamare Java, è più figo delle tonsille via gp :-)
Ma se lo volete davvero, potete farlo. Ma in aggiunta, dovete conoscere il C a un livello sufficiente e capire come sono disposti i thread in MT, come e quando vengono creati/trasformati.
ci sono molti articoli su come essere amici di Java e C/C++, la prima ricerca su google dà https://www.codeproject.com/Articles/993067/Calling-Java-from-Cplusplus-with-JNI.
vedere gli articoli locali su come essere amici con C/C++ e Mql
si può una volta sedersi e fare il livello Mql->(c/c++ dll)->Java. Sembra molto materno in termini di debug (le emozioni devono essere tenute sotto controllo), ma una volta fatto poi utilizzare.
PS/ e c'è la sensazione che Mql stia andando verso Sharp, e non è affatto amichevole con Java...quindi nella versione 6 gli sforzi saranno sprecati
Non ho detto che conoscevo bene Java. L'ho installato, ho creato un progetto e non so cosa fare dopo. Devo cercare degli esempi.
Siate realistici, potete gestire il protocollo tra il client/server? Procuratevi un libu pronto per lo scambio, altrimenti affogherete.
Sì, la versione russa.
Vogliamo fare un passo alla volta? :)
Certo che lo farò. Spero di non essere l'unico. Cerca solo di essere più proattivo nel rispondere ai messaggi.
Fatto da