public StreamingAPIConnect(StreamingListener sl, string ip, int port, LoginResponse lr, bool secure) { this.sl = sl; this.streamingSessionId = lr.StreamingSessionId; apiSocket = new System.Net.Sockets.TcpClient(ip, port); if (secure) { SslStream ssl = new SslStream(apiSocket.GetStream()); ssl.AuthenticateAsClient("xtb.com"); //hardcoded domain, because we use ip-version of the address apiWriteStream = new StreamWriter(ssl); apiBufferedReader = new StreamReader(ssl); } else { NetworkStream ns = apiSocket.GetStream(); apiWriteStream = new StreamWriter(ns); apiBufferedReader = new StreamReader(ns); } Thread t = new Thread(delegate() { while (running) { readStreamMessage(); Thread.Sleep(50); } }); t.Start(); //System.Threading.Timer t = new System.Threading.Timer(o => readStreamMessage(), null, 0, 10); }
private StreamingAPIConnector(StreamingListener sl, string ip, int port, LoginResponse lr, bool secure) { running = true; this.sl = sl; streamSessionId = lr.StreamSessionId; apiSocket = new TcpClient(ip, port); if (secure) { SslStream ssl = new SslStream(apiSocket.GetStream()); ssl.AuthenticateAsClient(ip); apiWriteStream = new StreamWriter(ssl); apiReadStream = new StreamReader(ssl); } else { NetworkStream ns = apiSocket.GetStream(); apiWriteStream = new StreamWriter(ns); apiReadStream = new StreamReader(ns); } Thread t = new Thread(delegate() { while (running) { ReadStreamMessage(); System.Threading.Tasks.Task.Delay(50); } }); t.Start(); }
/// <summary> /// Connect to the streaming using given streaming listener. /// </summary> /// <param name="streamingListener">Streaming listener</param> /// <param name="streamSessionId">Stream session id</param> public void Connect(StreamingListener streamingListener, string streamSessionId) { this.streamSessionId = streamSessionId; if (this.streamSessionId == null) { throw new APICommunicationException("please login first"); } if (Connected()) { throw new APICommunicationException("stream already connected"); } sl = streamingListener; apiSocket = new TcpClient(server.Address, server.StreamingPort); apiConnected = true; if (OnConnected != null) { OnConnected.Invoke(server); } if (server.Secure) { SslStream ssl = new SslStream(apiSocket.GetStream(), false, SSLHelper.TrustAllCertificatesCallback); ssl.AuthenticateAsClient(server.Address); apiWriteStream = new StreamWriter(ssl); apiReadStream = new StreamReader(ssl); } else { NetworkStream ns = apiSocket.GetStream(); apiWriteStream = new StreamWriter(ns); apiReadStream = new StreamReader(ns); } Thread t = new Thread(delegate() { while (Connected()) { ReadStreamMessage(); } }); t.Start(); }
public void ConvertsMessageDataToDTO() { SampleDTO aDto = null; IStreamingClient connection = new MockStreamingConnection(); StreamingListener <SampleDTO, CommaStringToSampleDtoConverter> listener = new StreamingListener <SampleDTO, CommaStringToSampleDtoConverter>("topic1", connection); listener.MessageReceived += (s, messageDto) => { aDto = messageDto.Data; }; ((MockStreamingConnection)connection).RaiseMessageReceived("topic1", "the title,2010-01-01 17:30:34"); Assert.IsNotNull(aDto); Assert.AreEqual("the title", aDto.Title); }
public void OnlyListensToMessagesOnSubscribedTopic() { var receivedMessages = 0; IStreamingClient connection = new MockStreamingConnection(); var listener = new StreamingListener <SampleDTO, CommaStringToSampleDtoConverter>("topic1", connection); listener.MessageReceived += (s, messageDto) => { receivedMessages++; }; ((MockStreamingConnection)connection).RaiseMessageReceived("topic1", "the title1,2010-01-01 17:30:34"); ((MockStreamingConnection)connection).RaiseMessageReceived("topic2", "the title2,2010-01-01 17:30:34"); ((MockStreamingConnection)connection).RaiseMessageReceived("topic1", "the title3,2010-01-01 17:30:34"); Assert.AreEqual(2, receivedMessages); }
public StreamingAPIConnector(StreamingListener sl, Server dt, LoginResponse lr) : this(sl, dt.Address, dt.StreamingPort, lr, dt.Secure) { }
private StreamingAPIConnector(StreamingListener sl, string ip, int port, LoginResponse lr) : this(sl, ip, port, lr, false) { }
/// <summary> /// Connect to the streaming using given streaming listener. /// </summary> /// <param name="streamingListener">Streaming listener</param> public void Connect(StreamingListener streamingListener) { Connect(streamingListener, streamSessionId); }
/// <summary> /// Creates new StreamingAPIConnector instance based on given server data, stream session id and streaming listener. /// </summary> /// <param name="server">Server data</param> public StreamingAPIConnector(Server server, string streamSessionId, StreamingListener streamingListner) { this.server = server; this.streamSessionId = streamSessionId; Connect(streamingListner, streamSessionId); }
public StreamingAPIConnect(StreamingListener sl, ServerData dt, LoginResponse lr) : this(sl, dt.address, dt.streamingPort, lr, dt.secure) { }
public StreamingAPIConnect(StreamingListener sl, string ip, int port, LoginResponse lr) : this(sl, ip, port, lr, false) { }