Pada masa ini, kami menggunakan fungsi ular sawa terbenam C++
Fungsi ular sawa ialah jenis menyekat untuk menerima mesej pelayan.
Tiada nilai pulangan sehingga pemantauan dikeluarkan. dipanggil, dan mesej yang diterima boleh diperolehi
Jadi bagaimana untuk mengembalikan mesej ke C++
Kod adalah seperti berikut Cetakan panggilan balik boleh mencetak data yang betul
klien rabbitMQ yang ditulis menggunakan perpustakaan pika di sini adalah untuk mengelak daripada menggunakan perpustakaan
rabbitMQ C
Sekarang ada pertimbangan untuk digunakan. C untuk menulis modul boleh laras python
Kemudian saya memanggilnya dalam fungsi panggil balik, tetapi ia berasa agak hodoh.
#!/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()
Fungsi yang disekat perlu menunggu sehingga data diterima atau menunggu tamat masa sebelum kembali