Just a note in your commit.

I think that you should have used the "STREAM_DELEGATE" APE socket for your zmq socket (look at dns.c). Which avoid hacking the "core" directly. That allow you to register some external callback on the socket event.

i.e.

    int sock;
    zmq_getsockopt(zmq_socket, ZMQ_FD, &sock, &sock_size);
    prepare_ape_socket(sock, g_ape);

    g_ape->co[sock]->fd = sock;
    g_ape->co[sock]->stream_type = STREAM_DELEGATE;

    g_ape->co[sock]->callbacks.on_read = ape_zmq_read;
    g_ape->co[sock]->callbacks.on_write = ape_zmq_write;

    events_add(g_ape->events, sock, EVENT_READ|EVENT_WRITE);


Anthony

Le 01/10/2010 03:17, Andrew Thompson a écrit :
You can find my initial work adding zmq support here:

http://github.com/Vagabond/APE_Server/commit/51fe2e324ef18f9fc48f5f81ecf6fe57b8698a79

Sample usage (in C):

   void *sock = ape_zmq_socket(ZMQ_SUB);
   ape_socket *apesock = ape_zmq_connect(sock, "tcp://localhost:5555", g_ape);
   zmq_setsockopt(sock, ZMQ_SUBSCRIBE, "", 0);
   apesock->callbacks.on_read_lf = sock_onread_lf;

I have an skeleton APE C module that I used for testing here:

http://eagle.bsd.st/~andrew/libape-skeleton.c

And the publisher is here:

http://eagle.bsd.st/~andrew/zmqpub.c

You can also use ape_zmq_bind to listen on a zmq socket. I'm overloading
the on_read_lf callback right now, but I think I should add another one,
because multipart zmq messages don't really fit with that callback.

I haven't exposed zmq to the spidermonkey library, and I'm not sure I
have the knowledge to even try.

Andrew

On Thu, Sep 30, 2010 at 06:00:47PM -0600, Erick Romero wrote:
Now we are three  :-)
Thanks a lot!

Erick Romero
[email protected]
------------------------------
Caminando hacia lo infinito,
puedo pensar en lo imaginable.


On 09/30/2010 05:20 PM, Mridul wrote:
Hi Andrew,

I'd also be interested to see your work.

Thanks,
Mridul

On Thu, Sep 30, 2010 at 3:55 PM, Johnathan Leppert
<[email protected]<mailto:[email protected]>>  wrote:

    Hi Andrew,

    I'd be interested to see your work with APE, especially your
    ZeroMQ integration. What practical applications did you use it
    for? Do you have your work on github?

    Thanks,

    Johnathan

    On Thu, Sep 30, 2010 at 11:16 AM, Andrew Thompson
    <[email protected]<mailto:[email protected]>>  wrote:

        Hi,

        I've been working on enhancing APE to meet the needs of my
        specific
        application, and its working pretty well. I've actually
        reverse-engineered how to write a C module (the spidermonkey
        stuff was
        too slow for my liking), written my own JS library for working
        with APE
        without the requirement for wildcard DNS (plus, its less than
        300 lines
        of code) and now I've recently added ZeroMQ support to APE.

        The problem is, from what I can tell, the APE project never
        seems to
        import changes from anyone but the weelya team. There's over a
        dozen
        forks with commits on Github, but from what I can tell, *none*
        of those
        forks has ever been merged with mainline (some even seem to be
        fixing
        the same bugs twice because the older fix was never pulled in
        mainline).

        Also, there's patches floating around the mailinglist in a similar
        state, I needed syslog support in APE (because the built in logger
        doesn't support ANY form of log rotation) and I found that APE
        doesn't
        actually support syslog (the config file is straight out
        misleading).
        Luckily there was a pretty good patch in the mailing list
        archives but,
        surprise, surprise, it never got merged or even commented on
        by anyone
        in a position to merge it.

        Basically my question is, what is the point of having APE open
        source at
        all if you aren't engaged with people trying to improve and
        enhance your
        stuff? At least give me some hope that my patches will get
        *looked* at.

        Andrew

        --
        You received this message because you are subscribed to the Google
        Groups "APE Project" group.
        To post to this group, send email to
        [email protected]<mailto:[email protected]>
        To unsubscribe from this group, send email to
        [email protected]
        <mailto:ape-project%[email protected]>
        For more options, visit this group at
        http://groups.google.com/group/ape-project?hl=en
        ---
        APE Project (Ajax Push Engine)
        Official website : http://www.ape-project.org/
        Git Hub : http://github.com/APE-Project/


    --
    You received this message because you are subscribed to the Google
    Groups "APE Project" group.
    To post to this group, send email to [email protected]
    <mailto:[email protected]>
    To unsubscribe from this group, send email to
    [email protected]
    <mailto:ape-project%[email protected]>
    For more options, visit this group at
    http://groups.google.com/group/ape-project?hl=en
    ---
    APE Project (Ajax Push Engine)
    Official website : http://www.ape-project.org/
    Git Hub : http://github.com/APE-Project/


--
You received this message because you are subscribed to the Google
Groups "APE Project" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/ape-project?hl=en
---
APE Project (Ajax Push Engine)
Official website : http://www.ape-project.org/
Git Hub : http://github.com/APE-Project/
--
You received this message because you are subscribed to the Google
Groups "APE Project" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/ape-project?hl=en
---
APE Project (Ajax Push Engine)
Official website : http://www.ape-project.org/
Git Hub : http://github.com/APE-Project/

--
You received this message because you are subscribed to the Google
Groups "APE Project" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/ape-project?hl=en
---
APE Project (Ajax Push Engine)
Official website : http://www.ape-project.org/
Git Hub : http://github.com/APE-Project/

Reply via email to