2015-02-07 37 views
0

我是SignalR的新手。在我的情況下,我想將通知僅推回給調用者。在正常的客戶機 - 服務器通信中,這發生在一種直接的方式中,即客戶機使用集線器代理與服務器對話。但是,如果客戶端和服務器之間有負載平衡器,我無法想象這種情況。信號器僅在負載平衡環境中向呼叫者推送通知

可以說客戶端發送請求並且負載均衡器將其引導到服務器之一。此時客戶端和服務器之間的連接丟失。如果服務器進一步處理請求,並在一段時間後檢測到它必須將通知推回給調用者。當服務器使用新建立的連接向負載均衡器發送推回通知時,它不知道必須返回數據的客戶端,因爲它不存儲客戶端的任何狀態。

這種理解是正確的嗎?如果這是正確的,我們如何維護客戶端和服務器的狀態以便將推回通知發送給相應的調用者?

我已經經歷了SignalR的'Backplane'概念,我的理解是這個特性在廣播場景中很有用。但是,我想只將數據發回給調用者。如果我錯了,請糾正我。

在此先感謝。

+0

你有沒有試過'context.clients.caller.broadcasting' – 2015-02-07 04:15:01

+0

嗨小丑,謝謝你的迴應。上面的代碼會將數據返回給唯一的調用者。但是,位於客戶端和服務器之間的負載均衡器會造成問題。負載均衡器不知道要將數據發送回哪個客戶端。 – user3796454 2015-02-08 03:49:58

回答

-1

它可能是負載平衡器粘滯會話問題。