Web 傳訊服務利用 Bayeux 通訊協定來進行發佈訂閱通訊。 只支援 Bayeux 長輪詢傳輸選項。 Bayeux 通訊的若干層面是配置在 Web 傳訊配置檔中。 以下列出這些配置選項。
在 Bayeux 通訊協定中,當訊息可用之前,伺服器不會完成 HTTP 要求。 longPollTimeout 配置選項指定在完成要求之前,伺服器要將要求保持開啟狀態多久。 要求完成之後,除非設定了 clientPollInterval,否則,Bayeux 用戶端會立即重新連接伺服器。 當設定這些值時,應該很小心。 如果 longPollTimeout 值設為 0,您必須將 clientPollInterval 值設成合理的值,以避免重複的 Bayeux 連接要求將伺服器淹沒。
名稱: | longPollTimeout |
---|---|
必要或選用: | 選用 |
資料類型: | 整數 |
容許值: | 以秒為單位來指定的值,在 0 和 300 之間 |
預設值: | 30 秒 |
說明: | 指出伺服器要將 HTTP 要求保持開啟狀態多久,以等待訊息。 依照定義,長輪詢需要要求在合理的時間量之內完成。 用戶端通常會在要求結束之時,立即重新連線。 |
clientPollInterval 指定在 Bayeux 連接要求之間,用戶端要等待多久。 如果設定了 clientPollInterval,就會利用 Bayeux 建議機制來引導用戶端重新連線的頻率。 將 longPollTimeout 設為零,將 clientPollInterval 設為正值,表示利用傳統輪詢來連接伺服器。 依您開發的應用程式類型而定,也許傳統輪詢是比較好的伺服器連接方式。配置傳統輪詢,會很容易連接服務整合匯流排來遞送訊息。
名稱: | clientPollInterval |
---|---|
必要或選用: | 選用 |
資料類型: | 整數 |
容許值: | 以秒為單位的值,大於或等於 0。 這個值必須小於 bayeuxSessionTimeout。 |
預設值: | 0 |
說明: | 引導用戶端按照指定的間隔來重新連線。 利用 Bayeux 重新連線間隔建議機制,指示用戶端執行重新連線的頻率。 這個用戶端連接必須支援 Bayeux 重新連線間隔建議機制,這個功能才能夠運作。 用戶端也可以按照它們自己的間隔來連接。 |
bayeuxSessionTimeout 指出在捨棄任何用戶端階段作業資訊之前,伺服器等待用戶端重新連線,要等多久。 用戶端以明確方式來呼叫 Bayeux 切斷連線作業,但用戶端是否會呼叫切斷連線,並沒有任何保證。 預設值 90 秒反映了 Bayeux 階段作業預定為短期存活的實況。 這個值應該設成足以超出 clientPollInterval,以確保用戶端可以順利重新連線及繼續接收訊息。
名稱: | bayeuxSessionTimeout |
---|---|
必要或選用: | 選用 |
資料類型: | 整數 |
容許值: | 以秒為單位的值,大於 10。 |
預設值: | 90 秒 |
說明: | 指出在捨棄用戶端資訊之前,伺服器等待用戶端重新連線,要等多久。 如果在 Bayeux 階段作業過期之後,用戶端又用相同的用戶端 ID 來重新連線,就會利用 Bayeux 重新交換信號建議機制來起始新的 Bayeux 階段作業。 |
useDistributedSession 用來供叢集內的所有成員共用 Web 傳訊階段作業資訊。 如果 useDistributedSession 內容設為 true,且 autoReinit 或 useDurable 配置內容也設為 true,就能夠在另一部伺服器上回復Web 傳訊作業。
名稱: | useDistributedSession |
---|---|
必要或選用: | 選用 |
資料類型: | 布林 |
容許值: | true 或 false |
預設值: | false |
說明: | 指定叢集內的所有成員都應該共用 Web 傳訊階段作業資訊。 當伺服器進行失效接手,或階段作業親緣性失敗時,可以在新伺服器上回復 Web 傳訊作業。 如果 useDurable 配置內容設為 true,且使用分散式階段作業,就可以在新伺服器上回復訂閱,遺失的訊息可以減到最少。 如果 autoReinit 配置內容設為 true,且使用分散式階段作業,訂閱會重新起始設定,但在失去訂閱與重新起始設定訂閱的間隔時段中,可能會失去訊息。 所有叢集成員共用的階段作業資訊包括:訂閱的主題清單、階段作業 ID、Bayeux 階段作業內容,以及服務整合匯流排內容。 |