SignalR が要求をハブにマップする方法に興味がありますか?
使用するハブをどのように選択しますか? リクエスト内のハブの名前はどこにありますか?
さらに、ハブ内のどのアクションがリクエストを処理するかをどのように選択するのでしょうか? それはリクエスト URL の一部ですか?
最後に、このパイプラインを利用する方法はありますか (IActionFilter、IHubSelector、IActionSelector など)?
SignalR が要求をハブにマップする方法に興味がありますか?
使用するハブをどのように選択しますか? リクエスト内のハブの名前はどこにありますか?
さらに、ハブ内のどのアクションがリクエストを処理するかをどのように選択するのでしょうか? それはリクエスト URL の一部ですか?
最後に、このパイプラインを利用する方法はありますか (IActionFilter、IHubSelector、IActionSelector など)?
次の方法でハブのタイプを取得します。
IAssemblyLocator
、関連するアセンブリを返します。
SignalR は、渡されたすべての型についてアセンブリに問い合わせます。
private static bool IsHubType(Type type)
{
try
{
return typeof (IHub).IsAssignableFrom(type) && !type.IsAbstract
&& (type.Attributes.HasFlag((Enum) TypeAttributes.Public)
|| type.Attributes.HasFlag((Enum) TypeAttributes.NestedPublic));
}
catch
{
return false;
}
}
次に、上記の条件に合格した型を使用して が作成されIHubDescriptors
、その型プロパティが依存関係リゾルバーによって解決されます。
SignalR はオープン ソースです。ここで探しているもののほとんどを見つけることができます: https://github.com/SignalR/SignalR/tree/master/src/Microsoft.AspNet.SignalR.Core/Hubs
着信チャネルの次の行から開始します。
幸運を!