使用cloudflare的免費workers建立一個esp32cam監控的方案研究

hrdom發表於2024-08-29

一開始我是研究了websockets

https://developers.cloudflare.com/workers/examples/websockets/

esp32cam--workers--手機瀏覽器

其中workers的邏輯是,把esp32cam的圖片資料儲存在一個記憶體變數中,然後在手機瀏覽器請求的時候,把這個圖片轉發出去。

如果您的應用程式需要在多個 WebSocket 連線之間進行協調,例如聊天室或遊戲比賽,您將需要客戶端將訊息傳送到單點協調。Durable Objects 為 Cloudflare Workers 提供單點協調,並且通常與 WebSockets 並行使用,以在多個客戶端和連線上保持狀態。在這種情況下,請參閱Durable Objects以開始使用,並優先使用 Durable Objects 的擴充套件WebSockets API。

但是吧,如上面所述,esp32cam--workers workers--手機瀏覽器 這倆websocket連線中的記憶體變數是不共享的,需要透過Durable Objects或者其他的什麼storage-options來做中介。跟伺服器中執行的程式不一樣,伺服器中,fetch外邊還可以放一層變數。

addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
但是吧“Durable Objects are only available on the Workers Paid plan.”所以免費沒法用Durable Objects。
所以只能修改思路了

感覺直接http+r2也可以,不用websocket了,websocket寫起來還麻煩。

相關文章