後臺創建了一個DntHub的集線器 前臺在調用的時候出現了問題(經檢查是代理對象創建失敗) 於是到StackOverflow上面找了下: http://stackoverflow.com/questions/14146913/signalr-cannot-read-property-client-o
後臺創建了一個DntHub的集線器
前臺在調用的時候出現了問題(經檢查是代理對象創建失敗)
於是到StackOverflow上面找了下:
http://stackoverflow.com/questions/14146913/signalr-cannot-read-property-client-of-undefined
上面說改成小寫就ok了,很多人也解決成功了
逆天改成小寫後也解決了,var chat = $.connection.dntHub
也許很多人就直接忽略了~~~~but,我為什麼這樣就解決了呢?C#的命名規則就是首字母大寫啊?
逆天喜歡深究一下,於是打開其動態生成的js,發現了這麼一句
so,原來預設生成了的就是小寫開頭的,,,,,,,,(⊙o⊙)… 很多人說結束了? NONONO
程式猿需要什麼?想象力和反常規的想象力!
那麼我就大膽設想,我們是不是可以指定名字呢?
上網搜了下,原來通過 HubName("xxx")可以設置名字
擴展一下,通過這個可以設置任意名字,不見得和類名相同
那麼再試試?
看看動態生成的js,
嘿嘿,爽!
結論:
如果不自己設置HubName,那麼SignalR會自動幫我們生成一個和類名相同並且以小寫開頭的HubName
這個問題有兩種解決方法,一種js中用首字母小寫的HubName,另一種自己指定