0
我有一個連接到Azure託管的SignalR服務器的Xamarin應用程序。什麼是緩存SignalR Server在Azure Web角色上發送事件?
由於Xamarin是通過單聲道運行的,因此websocket不可用。
當我的服務器託管在Azure移動服務上時,該應用使用了SSE。
由於移動服務太有限,我將服務器移至Web角色。
現在我的應用程序無法使用SSE進行連接,並在5秒超時間隔後回退到長輪詢。
我試着創建一個新的Web角色,只添加SignalR。仍然有同樣的問題。
我已經確定/試過如下:
- 它看起來像SSE請求被緩衝的地方在Azure上。如果我使用代理,我可以看到請求,但只有在SignalR超時並關閉連接後纔會收到第一個響應字節。
- 我的網絡上沒有代理或類似的東西 - 我仍然可以通過SSE連接到我的舊移動服務服務器。
- 我打開了服務器上的跟蹤,它看起來像SignalR正在做它的事情 - 它返回對SSE
connect
請求的響應。 - 我也可以在AuthorizeRequest階段的IIS中看到SSE請求,這意味着連接已打開。
- 我禁用了動態壓縮。沒有幫助。
總而言之,SSE連接看起來像是保持打開狀態,但阻止了來自SignalR的數據到達客戶端。
我在這裏讀到這可能是Http平臺處理程序的問題。但據我所知,這與Web角色無關,因爲它是在IIS中運行的正常C#代碼。
您是否嘗試過使用https? – Pawel
@Pawel使用HTTPS修復它!希望我發佈這個問題72令人沮喪的小時前... – daramasala
@Pawel你想發佈這個答案,所以我可以接受它? – daramasala