
无法正常接收 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,已联系作者并得到确认。









