private static void FileChanged(string filename) { if (filename.Contains("\\node_modules\\")) { return; } if (string.IsNullOrEmpty(filename) || !LiveReloadConfiguration.Current.LiveReloadEnabled) { return; } var ext = Path.GetExtension(filename); if (string.IsNullOrEmpty(ext)) { return; } if (_extensionList == null) { _extensionList = LiveReloadConfiguration.Current.ClientFileExtensions .Split(',', System.StringSplitOptions.RemoveEmptyEntries) .ToList(); } if (_extensionList.Contains(ext, StringComparer.OrdinalIgnoreCase)) { // delayed - no longer needed as server restarts automatically refresh on restart //bool delayed = ext == ".cshtml" || ext == ".cs" || ext == ".json" || ext == ".xml"; _ = LiveReloadMiddleware.RefreshWebSocketRequest(); // delayed } }
private static void FileChanged(string filename) { if (filename.Contains("\\node_modules\\")) { return; } if (string.IsNullOrEmpty(filename) || !Config.CurrentValue.LiveReloadEnabled) { return; } var ext = Path.GetExtension(filename); if (ext == null) { return; } if (Config.CurrentValue.ClientFileExtensions.Contains(ext)) { _ = LiveReloadMiddleware.RefreshWebSocketRequest(); } }
/// <summary> /// Hook up the Markdown Page Processing functionality in the Startup.Configure method /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IApplicationBuilder UseLiveReload(this IApplicationBuilder builder) { var config = LiveReloadConfiguration.Current; if (config.LiveReloadEnabled) { var webSocketOptions = new WebSocketOptions() { KeepAliveInterval = TimeSpan.FromSeconds(240), }; builder.UseWebSockets(webSocketOptions); builder.UseMiddleware <LiveReloadMiddleware>(); LiveReloadFileWatcher.StartFileWatcher(); // always refresh when the server restarts... _ = LiveReloadMiddleware.RefreshWebSocketRequest(); } return(builder); }
/// <summary> /// Hook up the Markdown Page Processing functionality in the Startup.Configure method /// </summary> /// <param name="builder"></param> /// <returns></returns> public static IApplicationBuilder UseLiveReload(this IApplicationBuilder builder) { var config = LiveReloadConfiguration.Current; if (config.LiveReloadEnabled) { var webSocketOptions = new WebSocketOptions() { KeepAliveInterval = TimeSpan.FromSeconds(240), ReceiveBufferSize = 256 }; builder.UseWebSockets(webSocketOptions); builder.UseMiddleware <LiveReloadMiddleware>(); LiveReloadFileWatcher.StartFileWatcher(); // always refresh when the server restarts... //this isn't necessary as the browser disconnects and on reconnect refreshes LiveReloadMiddleware.RefreshWebSocketRequest(); } return(builder); }
private static void FileChanged(string filename) { // this should really never happen - but just in case if (!LiveReloadConfiguration.Current.LiveReloadEnabled) { return; } if (string.IsNullOrEmpty(filename) || filename.Contains("\\node_modules\\")) { return; } var ext = Path.GetExtension(filename); if (string.IsNullOrEmpty(ext)) { return; // we don't care about extensionless files } FileInclusionModes inclusionMode = FileInclusionModes.ContinueProcessing; if (LiveReloadConfiguration.Current.FileInclusionFilter is Func <string, FileInclusionModes> filter) { inclusionMode = filter.Invoke(filename); if (inclusionMode == FileInclusionModes.DontRefresh) { return; } } if (_extensionList == null) { lock (_loadLock) { if (_extensionList == null) { _extensionList = LiveReloadConfiguration.Current.ClientFileExtensions .Split(',', StringSplitOptions.RemoveEmptyEntries) .ToList(); } } } if (inclusionMode == FileInclusionModes.ForceRefresh || _extensionList.Contains(ext, StringComparer.OrdinalIgnoreCase)) { if (_isFolderCreated) { _throttler.Debounce(2000, param => { _ = LiveReloadMiddleware.RefreshWebSocketRequest(); _isFolderCreated = false; }); } else { // delayed - no longer needed as server restarts automatically refresh on restart //bool delayed = ext == ".cshtml" || ext == ".cs" || ext == ".json" || ext == ".xml"; _ = LiveReloadMiddleware.RefreshWebSocketRequest(); // delayed } } }