使用ZMQ获取freeswitch事件

使用ZMQ获取freeswitch事件,c,zeromq,freeswitch,C,Zeromq,Freeswitch,我想使用ZMQ从freeswitch获取事件。我在freeswitch中启用了mod_event_socket和mod_event_zmq,我使用以下代码接收事件,但我没有得到任何信息 #include <zmq.h> #include <string.h> #include <stdio.h> #include <unistd.h> #include <assert.h> static char * s_recv (void *so

我想使用ZMQ从freeswitch获取事件。我在freeswitch中启用了
mod_event_socket
mod_event_zmq
,我使用以下代码接收事件,但我没有得到任何信息

#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <assert.h>

static char * s_recv (void *socket) {
    char buffer [256];
    int size = zmq_recv (socket, buffer, 255, 0);
    if (size == -1)
        return NULL;
    if (size > 255)
        size = 255;
    buffer [size] = 0;
    return strdup (buffer);
}

int main (int argc, char *argv [])
{
    // Socket to talk to server
    void *context = zmq_ctx_new ();
    void *subscriber = zmq_socket (context, ZMQ_SUB);
    int rc = zmq_connect (subscriber, "tcp://10.50.202.169:5556");
    assert (rc == 0);

    char filter[256] = {0};
    rc = zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE,
    "", 256);
    assert (rc == 0);

    // Process 100 updates
    int update_nbr;
    for (update_nbr = 0; update_nbr < 100; update_nbr++) {
        char *string = s_recv (subscriber);
        printf("%s",string);
        free (string);
    }

    zmq_close (subscriber);
    zmq_ctx_destroy (context);
    return 0;
}
#包括
#包括
#包括
#包括
#包括
静态字符*s_recv(void*socket){
字符缓冲区[256];
int size=zmq_recv(套接字,缓冲区,255,0);
如果(大小==-1)
返回NULL;
如果(大小>255)
尺寸=255;
缓冲区[大小]=0;
返回strdup(缓冲区);
}
int main(int argc,char*argv[])
{
//与服务器对话的套接字
void*context=zmq_ctx_new();
void*subscriber=zmq_套接字(上下文,zmq_SUB);
int rc=zmq_连接(订户,“tcp://10.50.202.169:5556");
断言(rc==0);
字符过滤器[256]={0};
rc=zmq_setsockopt(订户,zmq_订阅,
"", 256);
断言(rc==0);
//处理100个更新
国际更新(nbr);
对于(更新\u nbr=0;更新\u nbr<100;更新\u nbr++){
char*string=s_recv(订户);
printf(“%s”,字符串);
自由(弦);
}
zmq_关闭(用户);
zmq_ctx_销毁(上下文);
返回0;
}

我正在为freeswitch的这两个模块使用默认配置。

与freeswitch的zmq连接成功吗?
FreeSWITCH是否实际加载了
mod\u event\u zmq

模块?

您的问题在哪里?我想问,为什么这个模块没有收到任何东西。是的。mod_event_zmq已成功加载我是否正确使用筛选器?现在,我想得到一切。看起来还不错,但需要更深入的挖掘,可能需要查找来源。谢谢。我将
0
作为
zmq\u setsockopt
的最后一个参数,解决了这个问题。