Ваш код должен быть таким:
Вам необходимо определить концентратор, например
public class MyHub : Hub
{
public void HelloServer()
{
Clients.All.hello("Hello message to all clients");
}
}
и ваш код на стороне клиента
(function () {
// Defining a connection to the server hub.
var myHub = $.connection.myHub;
// Setting logging to true so that we can see whats happening in the browser console log. [OPTIONAL]
$.connection.hub.logging = true;
// Start the hub
$.connection.hub.start();
// This is the client method which is being called inside the MyHub constructor method every 3 seconds
myHub.client.SendServerTime = function (serverTime) {
// Set the received serverTime in the span to show in browser
$("#newTime").text(serverTime);
};
// Client method to broadcast the message
myHub.client.hello = function (message) {
$("#message").text(message);
};
//Button click jquery handler
$("#btnClick").click(function () {
// Call SignalR hub method
myHub.server.helloServer();
});
}());
Полный учебник можно найти здесь Но так как вы используете angular 7, почему вы используете новую версию SignalR?
Альтернативное решение с использованием aspnet / signal, но для ядра asp.net.Настроить что-то вроде этого очень просто
Сначала создать концентратор
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
Зарегистрироваться в DI-контейнере
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSignalR(routes =>
{
routes.MapHub<ChatHub>("/chatHub");
});
}
Затем запустить его под углом, например
import * as signalR from "@aspnet/signalr";
const connection = new signalR.HubConnectionBuilder()
.withUrl("/hub")
.build();
connection.start().catch(err => document.write(err));
connection.on("messageReceived", (username: string, message: string) => {
let m = document.createElement("div");
m.innerHTML =
`<div class="message-author">${username}</div><div>${message}</div>`;
divMessages.appendChild(m);
divMessages.scrollTop = divMessages.scrollHeight;
});
Пример можно найти здесь и здесь
Надеюсь, это поможет.Пожалуйста, дайте мне знать, если у вас есть какие-либо проблемы