Я занимаюсь разработкой приложения Angular, в котором мне нужно отправлять данные из угловых форм на внешний сервер, используя сервер .netcore и signalR.Я могу установить соединение между клиентом Angular и контроллером, используя концентратор сигналов, но я не понимаю, как отправить объект json с клиента на контроллер.С контроллера я хочу отправить объект Json на внешний сервер.Я хочу реализовать это с помощью сигнализатора, потому что я хочу в режиме реального времени связь между внешним сервером и клиентом.Когда я отправляю данные и получаю ответ от внешнего сервера, я хочу предупредить клиента. Я ищу некоторые рекомендации о том, как я могу это реализовать.
Угловой клиент
_hubConnection: HubConnection;
transportType = signalR.HttpTransportType.LongPolling;
ngOnInit() {
this._hubConnection = new signalR.HubConnectionBuilder()
.configureLogging(signalR.LogLevel.Information)
.withUrl("http://localhost:5000/message", this.transportType)
.build();
}
fun1(){
this._hubConnection.on("Send", (user, message) => {
const received = `name: ${user}, message: ${message}`;
console.log(received);
});
this._hubConnection.start()
.then(() =>
this._hubConnection.invoke('Send', "rk", "wassup").catch(function (err) {
console.error(err.toString());
})
)
.then(() =>
console.log('connected')
)
.then(() => this._hubConnection.stop())
.then(() => console.log('Disconnected'))
.catch(e => console.error(e.message));
Контроллер
namespace ang.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class DistController : Controller
{
private IHubContext<DistHub> _hubContext;
public DistController(IHubContext<DistHub> hubContext)
{
_hubContext = hubContext;
}
}
}
SignalRhub
namespace ang.HubConfig
{
public class DistHub: Hub
{
public async Task Send (string user , string message)
{
// return Clients.All.SendAsync("Send", message);
await Clients.All.SendAsync("Send", user, message);
}
}
}
startup.cs
app.UseSignalR(routes =>
{
routes.MapHub<DistHub>("/message");
});
json object
const Root = {
"Unit" : "mm",
"test": [{
"Val": this.Val1.isChecked,
'Val1' : this.val2.isChecked,
}],
"test1" :{
"sub":[{
'val2' : this.valFormGroup.get('val2').value,
'Val3' : this.valFormGroup.get('val3').value,
}]
},
}