У меня есть .Net Core 2.2 Server и клиент с Kendo UI Core. Я могу заставить начальное чтение работать с клиента, чтобы загрузить сетку, связанную с signalR, но когда сервер отправляет сообщение всем клиентам, использующим SignalR, сетка не обновляется, и вместо этого я вижу предупреждение:
"Предупреждение. Не найден клиентский метод с именем read".
Я просмотрел все примеры онлайн, включая
https://www.telerik.com/forums/signalr-datasource-with-server-sorting-filtering
https://demos.telerik.com/aspnet-core/grid/signalr
мой код полностью соответствует для соответствующих разделов, включая разделы Startup.cs.
client index.cshtml:
<script src="~/signalr/signalr.js"></script>
<script>
var url = "https://localhost:44000/hubs/status";
var hub = new signalR.HubConnectionBuilder()
.configureLogging(signalR.LogLevel.Information)
.withUrl(url)
.build();
var hubStart = hub.start();
</script>
<div class="signalr-grid-container">
@(Html.Kendo().Grid<Model>
()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.Status).Title("Status"));
})
.DataSource(dataSource => dataSource
.SignalR()
.AutoSync(true)
.ServerFiltering(true)
.ServerPaging(true)
.ServerSorting(true)
.PageSize(10)
.Transport(tr => tr
.Promise("hubStart")
.Hub("hub")
.Client(c => c
.Read("read")
)
.Server(s => s
.Read("read")
)
)
.Schema(schema => schema
.Data("Data")
.Total("Total")
.Aggregates("Aggregates")
.Model(model =>
{
model.Id(p => p.ID);
})
)
)
.Groupable(true)
.Sortable()
.Filterable()
.Pageable(pager => pager.Refresh(true).PageSizes(new int[] { 10, 20, 50, 100 }))
)
</div>
Код сервера:
private async Task UpdateUsers()
{
await _hub.Clients.All.SendAsync("read");
}
Кажется, что серверная сторона работает нормально, я могу пройти и увидеть, что она отправляет сообщение.
На стороне клиента может возникнуть проблема, поскольку я получаю эту ошибку на стороне клиента через отладчик Chrome:
«Предупреждение: не найден клиентский метод с именем read».
Что я также нахожу странным, так это то, что данные загружаются изначально, но обновленные операции чтения не запускаются.
Буду признателен за любую помощь.