Ошибка: - метод не найден при подключении сигнализатора - PullRequest
0 голосов
/ 11 февраля 2019

ошибка с сигнализатором.При запуске приложения отображается ошибка «метод не найден».возникли проблемы с подключением.

Я использую сигнализатор для чата.Проект находится в ядре Reactjs и asp.net.Приложение «Реакция» создается с помощью приложения «create-Reaction-app» (консоли).

// код в activjs *****

import React, { Component } from 'react';
import { HubConnection } from 'signalr-client-react';

class SingnalR extends Component {
    constructor(props) {
        super(props);
        this.state = {
                bookingMessage: '',
                bookingHubConnection: null
            };
    }

    componentDidMount() {
        const bookingHubConnection = new HubConnection('http://localhost:5000/chatHub')
        this.setState({ bookingHubConnection }, () => {
            this.state.bookingHubConnection.start()
                .then(() => console.log('Signalr started '))
                .catch((err) => console.log('Error connecting signalr - ' + err));


        this.state.bookingHubConnection.on('booking', (message) => {
            const bookingMessage = message;
            this.setState({ bookingMessage });
        });

    });


    }

    render() {
        return (
            <div>
                <div>message from server {this.state.bookingMessage}</div>
                userName <input id="userName" />
                userMessage<input id="userMessage" />
                <button id = "sendMessage"> sendMessage</button>
            </div>
        )
    }
}

export default SingnalR;

// код для ядра asp.net *******

// код chatHub

using Microsoft.AspNetCore.SignalR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace TinyHouseApi.SignalR
{
    public class ChatHub:Hub
    {
        public async Task SendMessage(string user, string message)
        {
            await Clients.All.SendAsync("ReceiveMesage", user, message);
        }
    }
}

//code of Startupfile
 public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors();
            services.AddDbContext<DataContext>(options => options.UseSqlServer(Configuration.GetConnectionString("testDB")));
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddAutoMapper();

            //configure SignalR
            services.AddSignalR();

            // configure strongly typed settings objects
            var appSettingsSection = Configuration.GetSection("AppSettings");
            services.Configure<AppSettings>(appSettingsSection);


 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            // global cors policy
            app.UseCors(x => x
                .AllowAnyOrigin()
                .AllowAnyMethod()
                .AllowAnyHeader());

            app.UseAuthentication();

            app.UseMvc();

            //SignalR
            app.UseSignalR(routes =>
            {
                routes.MapHub<ChatHub>("/chatHub");
            });
        }
        }

1 Ответ

0 голосов
/ 11 февраля 2019

Вы используете сигнал-клиент-реагирует ведьма зависит от ms-сигнал-клиент ведьма зависит от jquery.signalR.js старая версия signalR клиент и несовместим с ASP.Net Core SignalR .

Для использования последней SignalR версии с ASP.Net Core вы должны использовать пакет @ aspnet / signalr .Вы не можете использовать signalr-client-реакции

Здесь есть учебник

...