Files
egorin/deploy/mqtt_subtest.py
T
GermanandClaude Opus 4.8 b1c52ab748 Железный Егорин — форк Орбиты: тёплый стиль (amber), логин с odyssey WebGL-молнией справа, энергомониторинг+панель
Ребренд Мониторинг Орбита -> Железный Егорин; accent green->amber #F59E0B; LoginScreen правая половина = Lightning (WebGL, hue 35 тёплый) под стеклянной формой; левая панель — тёплый градиент.
Доступ агентам: репо публичный, push german-токеном.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 23:57:16 +03:00

40 lines
1.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python3
# Мини raw-MQTT subscriber: коннект к брокеру, SUBSCRIBE guard/#, ждём 1 PUBLISH.
import socket, struct, sys, time
HOST, PORT = "10.50.0.48", 1883
TOPIC = "guard/#"
def rl(n):
o=bytearray()
while True:
b=n%128; n//=128
if n>0: b|=0x80
o.append(b)
if n==0: break
return bytes(o)
def s(x):
b=x.encode(); return struct.pack("!H",len(b))+b
sock=socket.create_connection((HOST,PORT),timeout=8)
# CONNECT
body=s("MQTT")+bytes([0x04,0x02])+struct.pack("!H",60)+s("pcn-subtest")
sock.sendall(bytes([0x10])+rl(len(body))+body)
ca=sock.recv(4)
assert ca[0]==0x20 and ca[3]==0x00, ("CONNACK",ca)
# SUBSCRIBE (packet id 1, qos0)
sb=struct.pack("!H",1)+s(TOPIC)+bytes([0x00])
sock.sendall(bytes([0x82])+rl(len(sb))+sb)
# SUBACK
sock.recv(5)
print("SUBSCRIBED", flush=True)
# ждём PUBLISH до 12с
sock.settimeout(12)
buf=b""
try:
data=sock.recv(4096)
print("GOT_FROM_BROKER:", repr(data[:300]))
except socket.timeout:
print("TIMEOUT_NO_MESSAGE")
sock.close()