SignalR代理對象異常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的結論

 異常彙總:http://www.cnblogs.com/dunitian/p/4523006.html#signalRhtml

後臺建立了一個DntHub的集線器spa

前臺在調用的時候出現了問題(經檢查是代理對象建立失敗)3d

因而到StackOverflow上面找了下:代理

http://stackoverflow.com/questions/14146913/signalr-cannot-read-property-client-of-undefinedhtm

上面說改爲小寫就ok了,不少人也解決成功了對象

逆天改爲小寫後也解決了,var chat = $.connection.dntHubblog

也許不少人就直接忽略了~~~~but,我爲何這樣就解決了呢?C#的命名規則就是首字母大寫啊?get

逆天喜歡深究一下,因而打開其動態生成的js,發現了這麼一句it

 

so,原來默認生成了的就是小寫開頭的,,,,,,,,(⊙o⊙)… 不少人說結束了? NONONOio

程序猿須要什麼?想象力和反常規的想象力!

那麼我就大膽設想,咱們是否是能夠指定名字呢?

上網搜了下,原來經過 HubName("xxx")能夠設置名字

 

擴展一下,經過這個能夠設置任意名字,不見得和類名相同

 

那麼再試試?

 

看看動態生成的js,

嘿嘿,爽!

 

結論:

  若是不本身設置HubName,那麼SignalR會自動幫咱們生成一個和類名相同而且以小寫開頭的HubName

  這個問題有兩種解決方法,一種js中用首字母小寫的HubName,另外一種本身指定。(前臺建議都是小寫)

相關文章
相關標籤/搜索