Отправка параметров из уровня пользовательского интерфейса и получение данных с помощью SignalRC#

Место общения программистов C#
Ответить
Anonymous
 Отправка параметров из уровня пользовательского интерфейса и получение данных с помощью SignalR

Сообщение Anonymous »

Я выполняю свой проект в .net 6.0. Я провел необходимые тестовые операции в отношении SignalR. Я выполнил тестовую операцию с данными, которые хочу получить, и она прошла успешно. Однако я не могу отправить идентификатор пользователя, вошедшего в систему, в качестве параметра и получить соответствующие данные.

Код: Выделить всё

    {
public class SignalRHub : Hub
{
private readonly IEFBasketService _ebasketService;

public SignalRHub(IEFBasketService ebasketService)
{
_ebasketService = ebasketService;
}

public async Task SendBasket(int userId)
{
var basketCount = await _ebasketService.GetByUserIdBasketQuantity(userId);
await Clients.All.SendAsync("ReceiveBasketCount", basketCount);
}
}
}
Вышеуказанный метод безупречно работает в Swagger.

Код: Выделить всё

builder.Services.AddCors(options =>
{
options.AddPolicy("AllowAll", policy =>
{
policy.AllowAnyHeader()
.SetIsOriginAllowed((host) => true)
.AllowCredentials()
.AllowAnyMethod();

});
});

builder.Services.AddSignalR();

app.UseCors("AllowAll");

app.MapHub("/signalrhub");

Program.cs в ApiLayer аналогичен приведенному выше.

Код: Выделить всё







$(document).ready(() => {
var connection = new signalR.HubConnectionBuilder().withUrl("https://localhost:7171/SignalRHub").build();

$("#connstatus").text(connection.state);

connection.start().then(() => {
$("#connstatus").text(connection.state);

// UserId'yi HTML'den alıyoruz
var userId = $("#basketCount").data("user-id");

setInterval(() => {

connection.invoke("SendBasket", userId).catch(err => console.error(err.toString()));
}, 1000);
}).catch((err) => { console.log(err) });

connection.on("ReceiveBasketCount", (value) => {
$("#basketCount").attr("data-notify", value);
});
});



[i][/i]

При отладке данные ViewBag.userId также верны.
При перезапуске проекта данные data-notify="2" остаются то же самое, и консоль показывает ошибку: не удалось вызвать SendBasket из-за ошибки на сервере.

Подробнее здесь: https://stackoverflow.com/questions/793 ... th-signalr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»