我用signalR做了一个例子。但由于一个错误,它无法发挥作用。 一个错误(无法将类型system.threading.tasks.task< object>转换为字符串)在此行中:
return context.Clients.All.RecieveNotification(simple);
它位于代码的底部,您可以在下面看到。
下面你看到我写的方法。在那里,我与数据库建立连接,并通过命令/查询获取内容。 然后是几个检查,还有SqlDependency。
public string SendNotifications()
{
using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
{
string query = "SELECT eintrag FROM [dbo].[simple_column]";
connection.Open();
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Notification = null;
DataTable dt = new DataTable();
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
if (connection.State == ConnectionState.Closed)
connection.Open();
var reader = command.ExecuteReader();
dt.Load(reader);
if (dt.Rows.Count > 0)
{
simple = dt.Rows[0]["eintrag"].ToString();
}
}
}
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
return context.Clients.All.RecieveNotification(simple);
}
在这里我使用函数:
var notifications = $.connection.notificationHub;
notifications.client.recieveNotification = function (simple) {
// Add the message to the page.
$('#dbMessage').text(simple);
};
我希望你能帮助我。
感谢。