Sending/receiving ProtoOA messages

Created at 09 Oct 2019, 15:28
How’s your experience with the cTrader Platform?
Your feedback is crucial to cTrader's development. Please take a few seconds to share your opinion and help us improve your trading experience. Thanks!
BE

BenjaminR

Joined 12.06.2019

Sending/receiving ProtoOA messages
09 Oct 2019, 15:28


I would like to get some help for  how to send/receive ProtoOA messages. I am silly I know. I have been studying

the OpenAPI sample, but I have to write a simple console application without threads and other extras. 

The application has to know the following (base) functions only:

- connect to OpenAPI (it works)

- Send any ProroOA message (for example: Authorization request or get the current price....)

- Receive and process the data.

- exit 

here is my code but it halted at the  Transmit function. I do not know why and how to handle it.

Someone could send me a working example to berich1198@gmail.com

Thank you very much!

Beri

                try
                {
                    TcpClient client = new TcpClient(apiHost, apiPort);
                    apiSocket = new SslStream(client.GetStream(), false,
                    new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
                    apiSocket.AuthenticateAsClient(apiHost);
                    try
                    {
                        SendAuthorizationRequest(outgoingMsgFactory, writeQueueSync);
                        Transmit(apiSocket, writeQueueSync, lastSentMsgTimestamp);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Error: {0}", e);
                        return;
                    }
                    Thread.Sleep(100);
                    try
                    {
	    					Listen(apiSocket, readQueueSync);
	                }
                    catch (Exception e)
                    {
                        Console.WriteLine("Error: {0}", e);
                        return;
                    }
	            }
                catch (Exception ex)
                {
                Console.WriteLine("Establishing SSL connection error: {0} Program aborted.", ex);
                return;
                }
            apiSocket.Close();

 


@BenjaminR
Replies

PanagiotisCharalampous
09 Oct 2019, 15:31

Hi Be Rich,

There is a fully working example using Open API 2.0 here.

Best Regards,

Panagiotis


@PanagiotisCharalampous

afhacker
09 Oct 2019, 16:45

You can also use the library I wrote: https://github.com/afhacker/Connect

It has a console tester app, which you can use for testing different API commands.

My lib also supports Rx, which you can use for receiving the API messages on an IObservable stream.


@afhacker

BenjaminR
09 Oct 2019, 18:55

Unfortunately the OpenAPi Sample is not suitable for me. I spent 2 weeks with it without any results. I need more simplier and workable console example  that I can build step by step.

Thank you for Algodeveloper's help: but that version has more errors when I wanted to build.

Someone send me an example to berich1198@gmail.com. Please!

Thanks.


@BenjaminR