Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
..
Failed to load latest commit information.
.gitignore Erlang hwserver/hwclient example
README Give exemplary command to execute examples
asyncsrv.es Updated Erlang examples
hwclient.es Updated Erlang examples
hwserver.es Updated Erlang examples
identity.es Rewrote most of Chapter 3
interrupt.es Updated Erlang examples
lbbroker.es Edited Chapter 4
msgqueue.es Fix typo
mspoller.es Updated Erlang examples
msreader.es Updated Erlang examples
mtrelay.es Updated Erlang examples
mtserver.es Updated Erlang examples
psenvpub.es Updated Erlang examples
psenvsub.es Updated Erlang examples
rrbroker.es Updated Erlang examples
rrclient.es Updated Erlang examples
rrworker.es Updated for 0MQ/3.2
rtdealer.es Replace old XREP and XREQ examples with ROUTER and DEALER
rtreq.es Rewrote most of Chapter 3
syncpub.es Updated Erlang examples
syncsub.es Updated Erlang examples
tasksink.es Updated Erlang examples
tasksink2.es Updated Erlang examples
taskvent.es Updated Erlang examples
taskwork.es Updated Erlang examples
taskwork2.es Updated Erlang examples
version.es Updated Erlang examples
wuclient.es Updated Erlang examples
wuproxy.es Updated Erlang examples
wuserver.es Updated Erlang examples

README

# -*-org-*-

To run an example provide the path to the `ERLZMQ` NIF wrapper and execute a `EXAMPLE` escript:

    $ ERL_LIBS=/path/to/ERLZMQ ./EXAMPLE.es

* Examples in Erlang

|-------------+--------------------|
| Example     | 0MQ 2.1.7          |
|-------------+--------------------|
| asyncsrv    | yes                |
| durapub     | yes                |
| durapub2    | yes                |
| durasub     | yes                |
| hwclient    | yes                |
| hwserver    | yes                |
| identity    | yes                |
| interrupt   | yes (Erlang equiv) |
| lruqueue    | yes                |
| msgqueue    | yes                |
| mspoller    | yes                |
| msreader    | yes                |
| mtrelay     | yes                |
| mtserver    | yes                |
| psenvpub    | yes                |
| psenvsub    | yes                |
| rrbroker    | yes                |
| rrclient    | yes                |
| rrserver    | yes                |
| rtdealer    | yes                |
| rtmama      | yes                |
| rtpapa      | yes                |
| syncpub     | yes                |
| syncsub     | yes                |
| tasksink    | yes                |
| tasksink2   | yes                |
| taskvent    | yes                |
| taskwork    | yes                |
| taskwork2   | yes                |
| version     | yes                |
| wuclient    | yes                |
| wuproxy     | yes                |
| wuserver    | yes                |
| bstar       |                    |
| bstarcli    |                    |
| bstarsrv2   |                    |
| bstarsrv    |                    |
| clone       |                    |
| clonecli1   |                    |
| clonecli2   |                    |
| clonecli3   |                    |
| clonecli4   |                    |
| clonecli5   |                    |
| clonecli6   |                    |
| clonesrv1   |                    |
| clonesrv2   |                    |
| clonesrv3   |                    |
| clonesrv4   |                    |
| clonesrv5   |                    |
| clonesrv6   |                    |
| flcliapi    |                    |
| flclient1   |                    |
| flclient2   |                    |
| flclient3   |                    |
| flserver1   |                    |
| flserver2   |                    |
| flserver3   |                    |
| kvmsg       |                    |
| kvsimple    |                    |
| lpclient    |                    |
| lpserver    |                    |
| lruqueue2   |                    |
| lruqueue3   |                    |
| mdbroker    |                    |
| mdcliapi2   |                    |
| mdcliapi    |                    |
| mdclient2   |                    |
| mdclient    |                    |
| mdworker    |                    |
| mdwrkapi    |                    |
| mmiecho     |                    |
| peering1    |                    |
| peering2    |                    |
| peering3    |                    |
| ppqueue     |                    |
| ppworker    |                    |
| rtrouter    |                    |
| spqueue     |                    |
| spworker    |                    |
| suisnail    |                    |
| ticlient    |                    |
| titanic     |                    |
| tripping    |                    |
| tstkvmsg    |                    |
| tstkvsimple |                    |
|-------------+--------------------|

* Questions for List

- In taskvent there's a sleep to wait on outgoing messages -- I believe this
  isn't needed anymore

- Nice to have print statements for the steps in mtrelay.

Erlang Bindings Wish List:

- Validate specific options in setsockopt - e.g. should not support lists
  passed to subscribe (currently using implicit conversion).

* Issues

- durabpub + durasub

  If the publisher finishes sending its 10 messages after the subscriber has
  gone offline, when the subscriber comes back, it never gets the messages (and
  the pub never exits).

  To recreate:

  1. Start pub
  2. Start sub - wait to read a few messags
  3. Kill sub and wait until the pub sends all its messages (e.g. at most 10
     seconds)
  4. Restart the sub

  The sub will not get any messages. The pub won't exit.

- lruqueue

  Message part ordering will sometimes get messed up, resulting in badmatches.
  To recreate, try the example several times.

- asyncsrv

  Tried to implement the client task check phase using a timeout with
  erlzmq:recv/3. I'm not sure how this is supposed to work - confused by
  the Ref returned in the timeout error. What is this for? Ignoring it is
  no good -- I believe it puts the lib in a funky state.
Something went wrong with that request. Please try again.