我有使用.net客户端的SingnalR(OWIN自托管)服务器中心。现在我准备写Web客户端了。我看到中心脚本服务http://localhost:10102/signalr/hubs但看不到Scripts / jquery- .min.js和Scripts / jquery.signalR - .min.js。
我认为这些脚本不是从服务器中心提供的(但默认情况下由nuget包含在解决方案中) - 我是对还是缺少某些东西? 有没有办法直接从服务器引用这些脚本(不是在javascript客户端复制和托管它们)?
答案 0 :(得分:2)
常规强>
JavaScript客户端需要引用jQuery和SignalR核心 JavaScript文件。 jQuery版本必须是1.6.4或更高版本 版本,例如1.7.2,1.8.2或1.9.1。如果你决定使用 生成代理,您还需要对SignalR生成的引用 代理JavaScript文件。以下示例显示了引用内容 可能看起来像在使用生成的代理的HTML页面中。
您只需将以下脚本添加到index.html(注意版本):
<script src="Scripts/jquery-1.10.2.min.js"></script>
<script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
<script src="signalr/hubs"></script>
从服务器提供这些文件:
app.UseFileServer();
方法添加Configure(...)
。 (查看有关服务文件的详细信息:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files)在客户端添加所需的脚本。有一个例子(将地址和脚本文件更改为您的文件和服务器地址:
<script type="text/javascript" src="http://localhost:10310/scripts/signalr-clientES5-1.0.0-alpha2-final.js></script>
答案 1 :(得分:0)
实际上,您不需要脚本来实现SygnalR服务(后端部分)。要在客户端index.html和您的服务之间建立连接,您需要使用某种类型的客户端库来与SygnalR一起建立连接。
答案 2 :(得分:0)
以下是我根据此主题中的答案进入的确切解决方案:
静态文件(如其他javascript文件)可以在同一主机中提供,配置如下。当放置在\ Scripts文件夹内部解决方案中时,脚本将在http:// {yourhost} / scripts / {scriptName}中提供(对于每个文件,必须为'复制到输出目录'设置'复制,如果更新')。
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Branch the pipeline here for requests that start with "/signalr"
app.Map("/signalr", map =>
{
// Setup the CORS middleware to run before SignalR.
// By default this will allow all origins. You can
// configure the set of origins and/or http verbs by
// providing a cors options with a different policy.
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration
{
// You can enable JSONP by uncommenting line below.
// JSONP requests are insecure but some older browsers (and some
// versions of IE) require JSONP to work cross domain
// EnableJSONP = true
};
// Run the SignalR pipeline. We're not using MapSignalR
// since this branch already runs under the "/signalr"
// path.
map.RunSignalR(hubConfiguration);
});
// Serving javascript libraries required for client as static content from Scripts folder
app.UseStaticFiles(new StaticFileOptions() {
RequestPath = new PathString("/scripts"),
FileSystem = new PhysicalFileSystem(@".\Scripts"),
});
}
}
IT人