【发布时间】:2022-06-14 23:55:01
【问题描述】:
谁能帮我解决这个问题 我正在处理 py-script html 页面,我想通过 mqtt 在特定主题中发布消息。 我把python代码放在标签里
import asyncio
import os
import signal
import time
from gmqtt import Client as MQTTClient
STOP = asyncio.Event()
def on_connect(client, flags, rc, properties):
print('Connected')
client.subscribe('TEST/#', qos=0)
def on_message(client, topic, payload, qos, properties):
print(payload)
def on_disconnect(client, packet, exc=None):
print('Disconnected')
def on_subscribe(client, mid, qos, properties):
print('SUBSCRIBED')
async def main(broker_host):
client = MQTTClient("3232DZQ")
client.on_connect = on_connect
client.on_message = on_message
client.on_disconnect = on_disconnect
client.on_subscribe = on_subscribe
await client.connect(broker_host)
client.publish('TEST/TIME', 'IZISIUIQY', qos=1)
await STOP.wait()
await client.disconnect()
def ask_exit(*args):
STOP.set()
if __name__ == '__main__':
loop = asyncio.new_event_loop()
host = 'broker.hivemq.com'
loop.run_until_complete(main(host))
当我单独运行 python 文件时,它工作正常: python file working fine ,但是当我将代码放在标签中时,我不起作用。我想通过 mqtt 运行和发布消息的 html 页面,使用标记 pyscript 和属性 src="publish.py"
指向 python 文件<!DOCTYPE html>
<html>
<head>
<title>Publish MQTT</title>
<link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>
<py-env>
- gmqtt
</py-env>
</head>
<body>
<!--calling publish python code-->
<py-script src="publish.py"></py-script>
</body>
</html>
【问题讨论】:
-
请任何人在他的机器上运行此代码来发现问题
标签: python async-await python-asyncio mqtt pyscript