php中文网

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

php中文网

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

以上就是Flet广播消息无法接收怎么办?的详细内容,更多请关注php中文网其它相关文章!