為什么使用Python Flet訂閱廣播時無法接收其他用戶消息?

為什么使用Python Flet訂閱廣播時無法接收其他用戶消息?

python Flet 異步廣播訂閱:解決無法接收其他用戶消息的問題

在使用Flet構建實時應用時,廣播訂閱是關鍵功能。然而,近期用戶反饋,基于官方示例修改的異步訂閱程序僅能接收自身發送的消息,無法接收其他用戶的消息,這嚴重影響了應用的實時通信能力。

問題詳解

用戶基于Flet官方示例修改了異步訂閱代碼,嘗試構建聊天功能,但結果只能接收自身發送的消息。問題代碼如下:

import flet as ft import flet_fastapi  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]))  #ft.app(target=main, view=ft.AppView.WEB_BROWSER) # Works locally, but not for server deployment app = flet_fastapi.app(main) # Only receives self-sent messages

使用ft.app (本地運行正常,但無法部署到服務器) 與 flet_fastapi.app (僅接收自身消息) 的對比突顯了問題所在。

解決方案

經與Flet框架開發者確認,此問題源于框架自身的bug。目前,最佳解決方案是等待Flet框架更新修復此Bug。

立即學習Python免費學習筆記(深入)”;

在等待官方修復期間,開發者可考慮以下替代方案:

  • 使用其他通信庫/框架: 探索其他實時通信技術,例如websocket庫,來實現應用間的實時消息傳遞。
  • 持續關注Flet更新: 密切關注Flet官方發布的更新信息,以便在Bug修復后及時升級。

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享