[zeromq-dev] how to implement the subscriber in the black box pattern

Charles Remes lists at chuckremes.com
Thu Sep 19 12:30:02 CEST 2013


Good to know!

If someone does make this mistake, further calls against that socket should probably return an error that makes the problem obvious. We have EFSM and other library-created errors, so perhaps EINCOMPATIBLESOCKET (or similar) should be returned.

On Sep 19, 2013, at 5:01 AM, Pieter Hintjens <ph at imatix.com> wrote:

> OK, I've checked and libzmq master _does_ check socket types, thanks
> to our cherished Martin Hurton.
> 
> Commit 2a4aef is the one. The code is in mechanism.cpp:check_socket_type.
> 
> My comments about raising the error to the user still apply; we now
> get a failed connection but no signalling to the application.
> 
> -Pieter
> 
> On Thu, Sep 19, 2013 at 11:57 AM, Pieter Hintjens <ph at imatix.com> wrote:
>> This was certainly our intention. I'm not sure the code does that type
>> checking yet, but the protocol supports it.
>> 
>> However, it's not as simple as it sounds, since connections are
>> background actions and invisible to applications. So connection
>> failures are too. We have the same issue with security, and the
>> current answer is to simply deny the connection, as if there was no
>> network connection. But this won't help users debug problems. I'm not
>> a fan of having to do extra work (context monitoring) to catch such
>> errors.
>> 
>> Perhaps the better approach is to raise a fatal error on the socket so
>> all further operations on it fail, after a socket type error, or a
>> security failure. The error would happen asynchronously, but would at
>> least show on the radar without extra work.
>> 
>> -Pieter
>> 
>> 
>> 
>> 
>> 
>> On Thu, Sep 19, 2013 at 11:34 AM, Charles Remes <lists at chuckremes.com> wrote:
>>> Will the upcoming version 4 release enforce proper socket pairings so that doing something odd like connecting PUSH and SUB will raise an error?
>>> 
>>> cr
>>> 
>>> On Sep 19, 2013, at 2:46 AM, Pieter Hintjens <ph at imatix.com> wrote:
>>> 
>>>> You can't connect a PUSH to a SUB; use a PUB socket to send the data.
>>> 
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev




More information about the zeromq-dev mailing list