Yritän seuraavalla koodilla lukea AIS-viestejä, mutta tulee virhe "struct.error: unpack requires a buffer of 2 bytes", joka ilmeisesti tarkoittaa, että viesti on liian lyhyt tai jotain sen suuntaista.
import paho.mqtt.client as mqtt
# MQTT-yhteyden asetukset
broker = "
meri.digitraffic.fi"
port = 443
#topic = "vessels-v2/+/location"
client_id = "your_client_id"
# MQTT-asiakas luokka
class MQTTClient:
def __init__(self, broker, port, topic, client_id):
self.client = mqtt.Client(client_id)
self.client.on_connect = self.on_connect
self.client.on_message = self.on_message
self.client.connect(broker, port, 60)
self.client.loop_start()
def on_connect(self, client, userdata, flags, rc):
if rc == 0:
print("Connected successfully")
self.client.subscribe(topic)
else:
print("Connection failed with code", rc)
def on_message(self, client, userdata, msg):
print(f"Received message: {msg.payload.decode()} on topic {msg.topic}")
# Luo MQTT-asiakas ja alusta se
mqtt_client = MQTTClient(broker, port, topic, client_id)
# Odota viestejä
try:
while True:
pass
except KeyboardInterrupt:
mqtt_client.client.loop_stop()
mqtt_client.client.disconnect()
print("Disconnected")