. -
SELECT [name], [service_broker_guid], [is_broker_enabled] FROM [master].[sys].[databases]
is_broker_enabled 1, ( )
ALTER DATABASE sampleNotifications SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE ;
, . webAPI web.config
webAPI R nuget Install-Package Microsoft.AspNet.SignalR
signalR onConnected
public override Task OnConnected()
{
return base.OnConnected();
}
R global.asax.cs startup.cs
RouteTable.Routes.MapHubs(); //for global.asax.cs and will work only for signalR 1.1. From 2.0 onwards you need to have startup class
app.MapSignalR();
- SQLDependency . , , , , , global.asax.cs, TestNotifications Notifications DB
private void RegisterSQLNotifications()
{
string connectionString = ConfigurationManager.ConnectionStrings["sampleNotifications"].ConnectionString;
SqlDependency.Start(connectionString);
string commandText = @"Select * from dbo.TestNotifications";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(commandText, connection))
{
connection.Open();
var sqlDependency = new SqlDependency(command);
sqlDependency.OnChange += sqlDependency_OnChange;
using (SqlDataReader reader = command.ExecuteReader())
{
}
}
}
}
void sqlDependency_OnChange(object sender, SqlNotificationEventArgs e)
{
if (e.Info == SqlNotificationInfo.Insert)
{
var context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.All.sendNotifications();
}
RegisterSQLNotifications();
}
RegisterSQLNotifications Application_Start global.asax.cs. , , sqlDependency_OnChange, .
HTML-. WPF.
var connection = $.hubConnection(); connection.url = " http://localhost:40471/signalr";//URL- API var warnHubProxy = connection.createHubProxy('MyHub')
alertsHubProxy.on('sendNotifications', function (item) {
});
- webAPI . . , IIS.
http://www.asp.net/signalr/overview/performance/scaleout-with-sql-server
http://techbrij.com/database-change-notifications-asp-net-signalr-sqldependency
http://www.codeproject.com/Articles/883702/Real-Time-Notifications-using-SignalR-and-SQL-Depe
http://venkatbaggu.com/signalr-database-update-notifications-asp-net-mvc-usiing-sql-dependency/