Git Product home page Git Product logo

netmq.reactiveextensions's People

Contributors

amaler avatar drewnoakes avatar sharpe5 avatar somdoron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netmq.reactiveextensions's Issues

.NET Core support

NetMQ was just made ready for .NET Core how about this library?

I am looking at using NetMQ for cross-platform SOA communications and I like Rx so it might be cool to have this library as well on Linux/OSX servers.

Parameter "subscriberFilterName" is not used

I noted that in both SubscriberNetMq and PublisherNetMq the parameter subscriberFilterName is not used. We are only handling the case subscriberFilterName==null. It may be useful to make it works!

An old library still referenced

When you have a fresh install and just trying to install this package on runtime. You will get this error : Could not load file or assembly 'System.Xml.Linq, Version=3.5.0.0, because you are depending on a old library in the project.json file
"net45": { "dependencies": { "System.Xml.Linq": "3.5.*" }
Could you fix it please. I did something to work around, but I do not want to break thing.

License

I suggest using MPL v2.0. This is the suggest license for new zeromq projects.

Remove delays on startup by caching the last few seconds of data by default

The only reason that the publisher and subscriber delay by up to a second on startup is to avoid issues on startup. We can avoid all of this by caching the last few seconds of data, until the sockets are properly set up. We could extend this by adding an API call like SubjectReplay(TimeSpan(FromSeconds(5)). We could cache by the seconds value, or the highwater mark, whichever is lower.

For this to work, the subscriber would have to request old values on startup, and the publisher would have to cache outgoing messages in RAM until the publisher is ready.

Ensure that there is always a cap on the number of messages held in RAM, as an easy way to bring down an entire server is for one process to gobble up all of the RAM.

The net effect of this behind-the-scenes magic is that everything just works. We can start the publisher first, then the subscriber, or vice-versa, and we can have reliable subscriptions that don't arbitrarily lose values because they happened to join a network a quarter of a second late.

Add ReplaySubject

On connection, it will do a request/response to get the previous N items published.

Capitalise NetMQ with a capital Q

Hi,
I'm learning NetMQ & Rx, and this is a perfect project for me, thanks!

When I do the first copy & paste, found that

var publisher = new PublisherNetMQ<int>("tcp://127.0.0.1:56001");
var subscriber = new SubscriberNetMQ<int>("tcp://127.0.0.1:56001");

could not be compiler, turns out it should be PublisherNetMq<int> and SubscriberNetMq<int>,
and I found in the source there are some types end with 'NetMQ', and others 'NetMq'.

Will it be ok to keep in same convention ?

Support for topic-based Pub-Sub?

Is there currently support for doing Topic based messages in a Pub/Sub context? I know NetMQ supports that in their product but was unsure whether this option was available in the Reactive Extensions. If so, how would I leverage that?

Allow bind/connect to be reversed among publishers and subscribers

I have a scenario where I'm trying to use multiple PublisherNetMQs with an XSub endpoint. This doesn't work, since the PublisherNetMQ instance can't be configured to connect instead of binding. It would be great if the library respected the @, > indicators in the connection string as the main NetMQ library does.

Add a sequence number

This will be useful when adding ReplaySubject, in order to synch up old and new data.

Optimization: set subscriber thread up before connecting

Currently, the codebase passes all of its tests and works reliably for me.

However, if we wanted to eliminate the 500ms delay on subscription instantion, we could potentially do this by ensuring that the subscriber thread is up and running before connecting.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.