建立乙個站點(server),提供signalr服務
建立另乙個站點(client),呼叫signalr服務
把server配置到web farm下
client通過webfarm呼叫。
webfarm不支援websocket,所以退化成長連線(據說nginx好像支援了,沒試過)。
當farm下只有乙個節點時,一切正常,當加入2個節點後
在呼叫/signalr/connect或/signalr/reconnect時,有時會報錯
the connection id is in the incorrect format.
這個與connection id和connection token的生成驗證有關。
於此相關的介面為iprotecteddata
實現此介面(原始碼中有測試部分,可參考)不做亂七八糟的驗證,直接返回
public class最後註冊到依賴注入中。注意註冊的位置emptyprotecteddata
: iprotecteddata
public string
unprotect(
string
protectedvalue,
string
purpose)
}
routetable要在maphubs後面。否則是不起作用的。.routes.maphubs(
new
microsoft.aspnet.signalr.
hubconfiguration
);globalhost
.dependencyresolver.register(
typeof
(iprotecteddata
), () =>
new
emptyprotecteddata
());
因為加入了負載,是兩台以上的真實伺服器,監聽連線到a,而傳送負載到b,此時要b的傳送引起a的監聽返回。單純上面的配置是不行的。
還需要引入對負載的支援。
目前提供了基於azure,redis和sql server的,實驗環境用的是sql server。配置很簡單可參考
本實驗,client和server用的是不同的站點,及2個網域名稱,所以還要開啟跨域支援
routetable.routes.maphubs(
new
microsoft.aspnet.signalr.
hubconfiguration
);
web farm 討論引出
關於web farm 有成功的實施的文件沒 用它還不如 用nginx,簡單易用。nginx for windows的執行效果咋樣 windows iis無敵 玩nginx就不要用win系統,必須linux.2012r2測試中 貌似還不錯 跑了多久了 2012有core模式,無介面全命令列 web伺服...
在web farm中架設需要證書的wcf
makecert r pe n cn 頒發給 ss my sky exchange 此為證書的生成命令,其中 頒發給 需要替換成具體的機器。頒發給誰,則要使用對應的方式來訪問服務 如頒發給www.abc.com則在引用服務的web.config中address就應該是 同樣,機器名,公網ip和內網i...
Signalr入門系列 Signalr簡介(二)
一 signalr和websocket signalr是在websocket的基礎上進一步的封裝,可以實現除了websocket原有功能上更多的功能,例如回退到其他transports,修改應用程式以更新websocket implementations。signalr可以自動判斷傳輸方式,在可以用...