目前是使用C++嵌入式的python函数
python函数是阻塞式的接收服务器消息
直到退出监听才会有返回值
监听中收到消息会调用python的一个回调函数,可以获取到收到的消息
所以要怎么样来返回消息给C++
EDIT:
代码如下callback打印可以打印正确数据,问题是
这里用pika库写的rabbitMQ 的client就是为了不用
rabbitMQ的C库
现在有一种考虑就是再用C写一个python可以调的module
然后在回调函数里面调,就是感觉有点丑陋。
#!/usr/bin/env python
import pika
import sys
message = ""
def callback(ch, method, properties, body):
message = body
print(method.routing_key)
return message
def consume():
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
result = channel.queue_declare(exclusive=True)
queue_name = result.method.queue
channel.queue_bind(exchange='normalEx',
routing_key='remote',
queue=queue_name)
print(' [*] Waiting for logs. To exit press CTRL+C')
channel.basic_consume(callback,
queue=queue_name,
no_ack=True)
channel.start_consuming()
处于堵塞的函数, 都需要等到收到数据或者等待超时才能返回的, 如果你想要快点返回, 就采用不堵塞的方式咯,只不过这样会比较蛋疼