【发布时间】:2014-12-23 13:11:31
【问题描述】:
我想使用 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;
}
我正在为 freeswitch 的这两个模块使用默认配置。
【问题讨论】:
-
你的问题在哪里?
-
我想问一下,为什么这个没有收到任何东西。
标签: c zeromq freeswitch