Я начинаю работать с signalR, но у меня есть ошибка (я видел несколько ответов в Интернете, но ни один не помог мне), у меня есть следующие файлы:
GenteHub.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
namespace EjemploSignal
{
public class GenteHub:Hub
{
[HubMethodName("noti")]
public static void llenarDatos()
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<GenteHub>();
context.Clients.All.updateDatos();
}
}
}
enlace.js
var notificationHub = $.connection.genteHub;
$.connection.hub.start().done(function () {
cargarDatos();
});
$.notificationHub.client.updateDatos = function () {
cargarDatos();
};
function cargarDatos() {
$.ajax({
url: "Home/lista",
method: "GET",
async: false,
dataType: "json",
success: function (respuesta2) {
console.log("Respuesta", respuesta2);
}
});
}
Layout.html (ссылки на скрипты)
<script src="~/Scripts/jquery-3.3.1.js"></script>
<script src="~/Scripts/jquery.signalR-2.3.0.js"></script>
<script src="~/signalr/hubs"></script>
<script src="~/Scripts/enlace.js"></script>
<script src="~/Scripts/modernizr-2.6.2.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
У меня есть 2 ошибки, первая в консоли:

Согласно нескольким примерам, потому что я не ставлю имякласс и другие, это то, что я должен поставить имя [HubMethodName]
(я уже поставил оба и имею ту же ошибку)
Вторая ошибка, которую я получаю в сети:
if (typeof ($.signalR) !== "function") {
throw new Error("SignalR: SignalR is not loaded. Please ensure jquery.signalR-x.js is referenced before ~/signalr/js.");
}
Что соответствует тому, почему файл hub
не генерируется, потому что:
- Не размещен правильный порядок файлов (Когда они у меня в порядке) jquery, сигнал jquery, хаб")
- Он должен быть помещен или нет символ (~) (Плохо то, что я его надеваю и удаляю, а ошибка все еще сохраняется)
НекоторыеРекомендуется удалить $.
из
$.notificationHub.client.updateDatos = function () {
cargarDatos();
};
, чтобы избежать первой ошибки, и она работает, но когда я загрузил страницу, cargarDatos()
из $.connection.hub.start().done(function ()
развертывается правильно, но когда я добавляю новую запись вВ базе данных ничего не происходит.
В чем мои ошибки в этом коде?