有人能解释一下signalr/hub文件是如何工作的吗?
在阅读完文档之后,它说文件是在运行时生成的。但是,当我第一次加载一个站点时,您会将它与所有其他javascript文件包括在一起,例如
<script src="Scripts/jquery-1.10.2.min.js"></script>
<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-2.1.2.min.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="signalr/hubs"></script>这是如何工作的呢?
我根本找不到磁盘上的文件,那么web浏览器如何能够这样请求它呢?
谢谢你的解释!
发布于 2016-03-02 21:12:26
正如文档所述,JS是自动生成的。文件本身不会存储在文件系统上,而是根据请求(可能是缓存的)生成到/signalr/hubs位置。
在浏览器中输入http://myServer:port/signalr/hubs,您将看到js文件的样子。
原理与每个web应用程序相同:当您导航到页面时所看到的确切文件不是文件系统中某个文件的副本,而是服务器代码运行的结果。安装SignalR将设置一个处理向/signalr/hubs发出的请求的路由,并且当请求时将返回组成JS文件的字符串。
此代码被配置为在向项目中添加SignalR dll时运行,并在执行以下语句时准备服务器使用SignalR,通常是在Startup.cs或任何您自己的启动类中。
app.MapSignalR();发布于 2017-05-18 05:25:43
<!--Reference the autogenerated SignalR hub script. -->
<script src="signalr/hubs"></script>文档解释说它是一个自动生成的文件,这意味着这个文件实际上并不存在于我们的项目中。实际上,它是在向服务器发送请求时生成的。
$(function () {
// Declare a proxy to reference the hub.
var chat = $.connection.chatHub;
// Start the connection.
$.connection.hub.start().done(function () {
$('#sendmessage').click(function () {
// Call the Send method on the hub.
chat.server.send($('#displayname').val(), $('#message').val());
});
});
});当将上述请求发送到服务器时,可以在浏览器中看到服务器的进一步进程,如#DLeh在回答中提到的那样,使用下面的URL。
http://myServer:port/signalr/hubs也可以在控制台面板中观察到。
关于进一步的指导,您可以使用以下链接。
https://learn.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-server
https://stackoverflow.com/questions/35758082
复制相似问题