有一個重寫功能,允許將 Firebase 靜態站點的請求寫入云運行功能:
"hosting": {
...
"rewrites": [{
"source": "/api",
"run": {
"serviceId": "my-api",
}
}]
}
但是,尚不清楚這是否適用于 websocket 請求。
我可以確認重寫部分作業,因為 websocket 請求沒有被**重寫規則捕獲。用郵遞員測驗似乎請求回傳“404 Not Found”到初始http升級請求而不是“101 Switching Protocols”。
將 websocket 直接連接到云運行域作業正常。
uj5u.com熱心網友回復:
Firebase 托管可以比作 CDN 而不是基本代理。當用戶對其發出請求時,回應將根據記錄的回應處理順序進行處理,并且每個請求都作為 HTTP(S) 請求進行處理。
如果使用重寫來提供來自 Cloud Function 或 Cloud Run 的動態內容,則會根據 Firebase 托管的內部快取 CDN 檢查請求,如果存盤的回應不可用或已過期,則將其轉發到源。根據我對其作業原理的理解,這些步驟是通過多個內部請求實作的,而不是直接通過流式傳輸客戶端的請求。
相反,您可以使用自定義域(在撰寫本文時處于預覽階段)來屏蔽Cloud Run,例如ws.yourapp.com這樣您就可以跳過 Firebase 托管的 CDN,但仍然有一個用戶友好的 URL。雖然您也yourapp.com/api可以ws.yourapp.com使用重寫/重定向規則重定向到,但您使用的 Web 套接字客戶端必須支持重定向(因為它不是 Web 套接字規范的必需部分)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/363620.html
