protected override bool _Send(P2pNetMessage msg) { string msgJSON = JsonConvert.SerializeObject(msg); RedisCon.GetSubscriber().PublishAsync(msg.dstChannel, msgJSON); return(true); }
protected void _OnMessage(IMessage receivedMsg) // for all topics { ITextMessage txtMsg = receivedMsg as ITextMessage; P2pNetMessage p2pMsg = JsonConvert.DeserializeObject <P2pNetMessage>(txtMsg.Text); _AddReceiptTimestamp(p2pMsg); lock (queueLock) messageQueue.Add(p2pMsg); // queue it up }
protected void _ListenConcurrent(string channel) { RedisCon.GetSubscriber().Subscribe(channel, (rcvChannel, msgJSON) => { P2pNetMessage msg = JsonConvert.DeserializeObject <P2pNetMessage>(msgJSON); _AddReceiptTimestamp(msg); lock (queueLock) messageQueue.Add(msg); // queue it up }); }
protected override bool _Send(P2pNetMessage msg) { if (listeningTo.Contains(msg.dstChannel)) { _AddReceiptTimestamp(msg); messageQueue.Add(msg); } return(true); }
protected override bool _Send(P2pNetMessage msg) { IDestination dest = session.GetTopic(msg.dstChannel); IMessageProducer prod = session.CreateProducer(dest); prod.DeliveryMode = MsgDeliveryMode.NonPersistent; string msgJSON = JsonConvert.SerializeObject(msg); prod.Send(session.CreateTextMessage(msgJSON)); return(true); }
protected void _ListenSequential(string channel) { var rcvChannel = RedisCon.GetSubscriber().Subscribe(channel); rcvChannel.OnMessage(channelMsg => { P2pNetMessage msg = JsonConvert.DeserializeObject <P2pNetMessage>(channelMsg.Message); _AddReceiptTimestamp(msg); lock (queueLock) messageQueue.Add(msg); // queue it up }); }
protected override void _AddReceiptTimestamp(P2pNetMessage msg) => msg.rcptTime = NowMs;