[Time] Name | Message |
[04:05] fUD
|
Hi guys
|
[04:06] fUD
|
Anyone got a document on qpid vs zeromq?
|
[05:59] fUD
|
\q
|
[07:18] bharatm
|
I am using the clrzmq2 library, and creating a C# app which sends some data using REQ,REP as soon as it is connected to the internet. The network can be disabled / enabled back on and the app needs to continously keep sending the data as soon as it detects an internet connection is available. How can i achieve low latency using zeromq when sending the data from client to a server ? Do i need to make any specific settings in the conte
|
[08:46] eintr
|
morning(ish), folks
|
[09:06] mikko
|
morning
|
[09:07] pieterh
|
hi
|
[09:07] yukonbob
|
morning #zeromq :)
|
[09:08] pieterh
|
hi yukonbob
|
[09:13] yukonbob
|
should "localhost" be a working standin for "127.0.0.1" in all cases of supplying an address?
|
[09:14] yukonbob
|
I haven't completely dug in, but I've run into cases where it appears to not work.
|
[09:15] mikko
|
no
|
[09:15] mikko
|
you can't really bind to a hostname
|
[09:15] yukonbob
|
ah... ok
|
[09:15] mikko
|
(with zeromq)
|
[09:15] yukonbob
|
I've got cases where it appears to work...
|
[09:15] yukonbob
|
maybe diff between bind/connect
|
[09:15] mikko
|
connect works
|
[09:15] yukonbob
|
heh
|
[09:15] mikko
|
but bind doesn't (iirc)
|
[09:16] yukonbob
|
I'm still coming up to speed w/ 0mq's personality..
|
[09:18] yukonbob
|
is reason why won't accept hostname in bind() case?
|
[09:20] yukonbob
|
hrmm... just triggered assertion
|
[09:20] mikko
|
you will trigger assertion if you try to bind with hostname
|
[09:20] mikko
|
i think there is a reason for the behaviour, just can't remember what
|
[09:20] yukonbob
|
this is diff't assertion I just got...
|
[09:22] mikko
|
which one are you seeing?
|
[09:22] yukonbob
|
Assertion failed: rc == 0 (zmq_connecter.cpp:48)
|
[09:23] yukonbob
|
... when running a sub w/o pub mate.
|
[09:24] yukonbob
|
am dealing w/ C bindings...
|
[09:24] mikko
|
looks like incorrect uri
|
[09:24] mikko
|
what is the uri you are using?
|
[09:24] yukonbob
|
tcp://iwn0:9999
|
[09:24] mikko
|
does iwn0 resolve?
|
[09:24] yukonbob
|
where iwn0 == wireless iface
|
[09:25] mikko
|
hmm
|
[09:25] mikko
|
what OS?
|
[09:25] yukonbob
|
mikko: netbsd
|
[09:26] yukonbob
|
, seems to be chugging along fine...
|
[09:27] yukonbob
|
hrm.... 1s.
|
[09:28] mikko
|
i dont think you can connect to an interface name
|
[09:28] mikko
|
you can bind to an interface
|
[09:28] yukonbob
|
:)
|
[09:34] yukonbob
|
mikko: your notes re: interfaces, hostnames bind/connect seem to be correct. I'll need to pay closer attention to things that I think should have same semantics but don't....
|
[12:35] Seta00
|
are all the zero.mq shortcuts listed somewhere?
|
[12:37] Seta00
|
I've been playing with Groovy lately, and after reading about GPars Actors (http://gpars.codehaus.org/Actor) I decided to do something similar with 0MQ: https://gist.github.com/1018752
|
[12:37] Seta00
|
:)
|
[13:36] Seta00
|
heh, that little experiment granted me a 30m talk about 0MQ
|
[13:36] Seta00
|
great success
|
[13:37] Seta00
|
anyone got any tips on how to show 0MQ to people?
|
[13:37] mikko
|
Seta00: peter wrote a doc
|
[13:37] mikko
|
sec
|
[13:37] mikko
|
http://www.zeromq.org/docs:the-ten-minute-talk
|
[13:39] Seta00
|
thanks!
|
[13:40] mpales
|
Seta00: you actor model works only if an actor is not accessed by multiple threads
|
[13:41] Seta00
|
mpales, I know, it's just a proof of concept
|
[13:42] Seta00
|
it's the second thing I write in Groovy (the first being Hello World)
|
[13:42] Seta00
|
wrote*
|
[13:42] Seta00
|
xristos, nice IPv6 :)
|
[13:42] xristos
|
=)
|
[13:42] xristos
|
is it possible for push/pull to lose messages?
|
[13:43] xristos
|
assuming no node crashes
|
[13:43] xristos
|
i do outgoing.send() on a push socket
|
[13:43] xristos
|
then outgoing.close()
|
[13:44] xristos
|
and ctx.term()
|
[13:44] xristos
|
the docs say term will block until the message is sent
|
[13:44] xristos
|
but the receiver never gets it
|
[13:54] xristos
|
nevermind i'm using 2.0 and this is not supported
|
[14:48] mile
|
is it possible to get all connections to the pull socket (or any other socket) programmaticaly, on the binding side?
|
[14:48] mikko
|
nope
|
[14:51] mile
|
hm, how do you handle dead clients which still have open connections?
|
[14:51] mile
|
in a pull/push pattern
|
[14:52] mikko
|
mile: i think there is an open ticket related to this
|
[14:52] mikko
|
if i understood you correctly
|
[14:53] mile
|
oh, ok
|
[14:53] mile
|
let me clarify: I have a push socket
|
[14:53] mikko
|
https://zeromq.jira.com/browse/LIBZMQ-160
|
[14:53] mikko
|
you mean something like this?
|
[14:53] mile
|
and 2 clients connect, messages get each 2nd message
|
[14:53] mile
|
but one stops responding
|
[14:54] mile
|
it's dead, but still holds the connection
|
[14:54] mikko
|
in this scenario you would lose the messages
|
[14:54] mile
|
and I can't know which clients are connected
|
[14:54] mile
|
or how many
|
[14:54] mikko
|
at the moment for something like this you would need to use XRE(Q|P)
|
[14:55] mikko
|
ROUTER/DEALER nowadays i think
|
[14:55] mile
|
so I send an ACK on the application level?
|
[14:55] mikko
|
PUSH/PULL by nature is fire-and-forget
|
[14:55] mikko
|
yes
|
[14:55] mile
|
ok, thx, I'll look into the router for it
|
[15:00] mile
|
is it possible that a client process dies and still has an open socket?
|
[15:01] mikko
|
yes
|
[15:11] mile
|
bummer :)
|
[15:11] ianbarber
|
it would have to be a slightly odd die though
|
[15:11] ianbarber
|
to leave the io thread up
|
[15:11] mikko
|
it might take a while before server notices that the client is dead
|
[15:12] mikko
|
and in the mean time it might push messages to it
|
[15:12] mikko
|
which are then later discarded
|
[15:12] ianbarber
|
yeah, true
|
[15:12] ianbarber
|
also messages may be in the connection queue
|
[16:02] Steve-o
|
so I'll have a look at IOCP on Windows for 0mq, TCP performance is pretty weak
|
[16:03] mikko
|
hey stevo
|
[16:03] Steve-o
|
Hi Mikko, long time no chat
|
[16:03] Steve-o
|
not finished the CMake port?
|
[16:04] mikko
|
been travelling lately
|
[16:04] mikko
|
travelling salesman
|
[16:04] mikko
|
well, holidayman
|
[16:04] mikko
|
i spoke to this guy that i used to work with
|
[16:04] mikko
|
he has submitted several cmake generated rpms to fedora core
|
[16:05] Steve-o
|
easiest to start with existing projects
|
[16:11] Steve-o
|
need to work with a new sockaddr structure on windows it looks
|
[16:12] mikko
|
did you see osx lion compile errors?
|
[16:12] mikko
|
i think you might've responded to that
|
[16:12] Steve-o
|
use sockaddr as sa_data is a char[14] then append that to \\\\.\\pipe\\Omq\\
|
[16:12] Steve-o
|
lion? can't recall, although I was wondering what I should upgrade to test
|
[17:16] Steve-o
|
connector ported, now the listener ...
|
[17:59] mikko
|
Steve-o: awesome!
|
[18:49] Steve-o
|
I love the irony of IOCP inside 0mq, to not waste threads you need a messaging system beneath 0mq to manage completion events
|
[18:50] Steve-o
|
otherwise it is one additional thread per socket :/
|
[19:36] Steve-o
|
is there such a pattern as reactive proactor?
|
[19:37] Steve-o
|
the way forward with zmq_engine_t is to support proactors but would be nice to keep in reactor support at the same time
|
[19:38] Steve-o
|
interesting to see the performance overhead from moving the reactor signal from rising edge to trailing edge, i.e. completion
|
[21:35] CIA-76
|
jzmq: 03Gonzalo Diethelm 07master * r43cf0c9 10/ builds/msvc/jzmq/jzmq.vcproj : Added classes EmbeddedLibraryTools and App to MSVC project. - http://bit.ly/ivz7zj
|