Как я могу передать значения, которые я получаю от SignalR, в мой массив в Angular? - PullRequest
0 голосов
/ 14 февраля 2020

Я использую 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, в мой массив? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...