PHP前端开发

Flet广播消息无法接收怎么办?

百变鹏仔 5天前 #Python
文章标签 消息

无法正常接收 flet 广播消息的解决方法

在使用 flet 的订阅广播功能时,如果遇到只能收到发送方自己消息的问题,可以尝试以下解决方法:

官方示例中将 main 函数标记为异步函数后,pubsub 的 subscribe_async 和 send_all_async 需要使用 await 关键字,否则会导致消息无法正常发送和接收。

修改后的代码如下:

async def main(page: ft.Page):    page.title = "Flet Chat"    async def on_message_async(msg):        messages.controls.append(ft.Text(msg))        await page.update_async()    await page.pubsub.subscribe_async(on_message_async)    async def send_click(e):        await page.pubsub.send_all_async(f"{message.value}")        message.value = ""        await page.update_async()    messages = ft.Column()    message = ft.TextField(hint_text="Your message...", expand=True)    send = ft.ElevatedButton("Send", on_click=send_click)    await page.add_async(messages, ft.Row(controls=[message, send]))

另外,据官方作者反馈,这是一个 flet 框架的 bug,已联系作者并得到确认。