/*public void Subscribe(string channel, Action<RedisChannel, RedisValue> handler) * { * sub.Subscribe(channel, handler); * } * * public void Publish(string channel, string message) * { * sub.Publish(channel, message); * }*/ public void StartPriceSubscriber(string ip, int port = 6379) //string symbol) { m_redisSub = ConnectRedis(ip, port); m_sub = m_redisSub.GetSubscriber(); dout("RedisIQFeed::SubscribePriceUpdates()"); m_sub.SubscribeAsync(IQ_CHANNEL, (channel, message) => { OnSubscriberReceive?.Invoke((string)message); }); }
public void SubscriptionLoop(int threadSleepMilliseconds = 50) { while (true) { // ZeroMQ using (var replyFrame = m_subscriberSocket.ReceiveFrame()) { string reply = replyFrame.ReadString(); //Console.WriteLine(reply); OnSubscriberReceive?.Invoke(reply); } //Msg replyMsg = new Msg(); // NetMQ //m_subscriber.Receive(ref replyMsg); //string reply = replyMsg.ToString(); ////string reply = replyFrame.ReadString(); ////Console.WriteLine(reply); //UpdateSubscriberReceive?.Invoke(reply); Thread.Sleep(threadSleepMilliseconds); } }