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,另外一种本身指定。(前台建议都是小写)

相关文章
相关标签/搜索