2017-11-08 13 views
1

私は、.netクライアントで動作するSingnalR(OWIN自己ホスト型)サーバーハブを持っています。今、私はWebクライアントを書く準備をしています。ハブスクリプトにはhttp://localhost:10102/signalr/hubsが表示されていますが、Scripts/jquery-.min.jsとScripts/jquery.signalR- .min.jsは表示されません。サーバー内のjavascriptクライアント用Signalrホスティングクライアントスクリプト

これらのスクリプトはサーバーハブからサービスされていないと仮定しています(ただし、デフォルトではnugetからソリューションに含まれています)。 これらのスクリプトを直接サーバーを参照する方法はありますか(javascriptクライアント側でコピーしてホストしないでください)。

答えて

2

一般:

https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client

A JavaScriptクライアントは、jQueryとSignalRコア のJavaScriptファイルへの参照が必要です。 jQueryのバージョンは、1.7.2,1.8.2、または1.9.1など、バージョン1.6.4またはそれ以降のメジャーバージョン でなければなりません。 生成されたプロキシを使用する場合は、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> 

は、サーバーからこれらのファイルをサーブ:

  1. は、ディレクトリを作成しますこれらのJSファイルを配置するサーバープロジェクト内
  2. これらのファイルを処理するサーバーを構成します。そのためには、app.UseFileServer();Configure(...)メソッドに追加してください。 (サービスファイルの詳細:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files
  3. クライアントに必要なスクリプトを追加します。そこにあなたのファイルへの例(変更の住所が、スクリプトファイルがあり、あなたのサーバのアドレス:

    静的:

    <script type="text/javascript" src="http://localhost:10310/scripts/signalr-clientES5-1.0.0-alpha2-final.js></script>

+0

スクリプト/ jquery-1.10.2.min.jsはクライアント側の一部です。シグナルサーバーのホストから提供できますか? –

+0

@ITMan:私は私のアンカーを編集しました。このソリューションは機能します。私はそれを短く試しました。 – Tester

+0

あなたの答えのインスピレーションを得て得ました。ご協力いただきありがとうございます!私はこのスレッド内の答えをどのようにマークするのか分かりません...? @IT Man。 –

0

実際、SygnalRサービス(バックエンド部分)を実装するためのスクリプトは必要ありません。クライアントindex.htmlとサービスを接続するには、SygnalRと連携して動作する何らかのクライアントlibが必要です。

+0

私は私がどこからでもそれらのスクリプトを含めることができます知っているが、私はむしろsignalrサーバホストからそれらを提供したいと思います。そうすれば、例えばバージョンの互換性が保証されます。 –

0

ここで私はこのスレッド内の回答に基づいて、入って来た厳密解です\ Scriptsフォルダ内に置かれている場合、スクリプトはhttp:// {yourhost}/scripts/{scriptName}で利用可能になります( 'copy if newer'各ファイルの 'Copy To Output Directory'に設定する必要があります)

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マン

関連する問題