所有signalR示例都显示
<script src="/signalr/hubs" type="text/javascript"></script>
没有充分解释它的用途。
对于Html页面,它是文件夹的位置。那里没有剧本。
为什么以及如何使用这条线?
答案 0 :(得分:3)
/ signalr / hubs页面是一个由SignalR自动生成的JavaScript文件,其中包含SignalR项目中每个集线器的生成的集线器代理。
例如(从http://shootr.signalr.net/signalr/hubs得到)让我们看一下代码片段。
proxies.h = this.createHubProxy('h');
proxies.h.client = { };
proxies.h.server = {
changeViewport: function (viewportWidth, viewportHeight) {
return proxies.h.invoke.apply(proxies.h, $.merge(["changeViewport"], $.makeArray(arguments)));
},
fire: function () {
return proxies.h.invoke.apply(proxies.h, $.merge(["fire"], $.makeArray(arguments)));
},
...
“this”指的是集线器连接,或者更确切地说是$ .connection.hub。所以我们实际上是在说proxies.h = $ .connection.hub.createHubProxy('h');
现在'h'是服务器上的集线器请参阅https://github.com/NTaylorMullen/ShootR/blob/master/ShootR/ShootR/Server/GameHub.cs,更具体地说,请查看集线器名称属性。
接下来我们有proxies.h.client;这是用户能够声明将从服务器调用的客户端函数的端点。
然后我们有proxies.h.server,它引用了GameHub.cs上的所有公共hub方法。所以一些函数是changeViewport和fire。此代码在服务器上自动生成,以代表您的每个集线器。
最后,在signalr / hubs文件的末尾,我们将所有动态创建的集线器扩展到$ .connection对象,以便用户可以通过
访问它们var myGameHub = $.connection.h;
希望这有帮助!