Я использую SignalR с net framework и хочу реализовать с Angular 8. Я пытался использовать простой пример чата на. net framework mvc, но у меня проблемы с broadcastMessage.
В C#
public class Chathub : Hub
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
public void Send(string name, string message)
{
// Call the broadcastMessage method to update clients.
Clients.All.broadcastMessage(name, message);
}
}
В Angular компоненте я создал массив, чтобы я мог отправлять sh сообщения в этот массив и показывать в реальном времени на своей странице, вот как я made
HTML
<div>
<div *ngFor="let item of mensagens">
{{item.nome}}: {{item.mensagem}}
</div>
Компонент
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
chat:any;
mensagens: {
nome: string, mensagem: string
}[];
constructor() {
this.chat = $.connection.chathub;
this.chat.connection.url = 'http://localhost:61708/signalr';
this.chat.client.broadcastMessage = function(name: string, message: string)
{
this.mensagens.push({nome: name, mensagem: message});
};
$.connection.hub.start().done(function () {
console.log('conected');
});
}
Проблема в том, что в функции broadcastMessage, когда я пытаюсь получить доступ к "this.mensagens", я не определил , Я не могу получить доступ к mensagens из этой функции. Как я могу передать значения, которые я получаю от broadcastMessage, в мой массив? Спасибо.