SingalR в консольном приложении - PullRequest
0 голосов
/ 06 мая 2018

Привет, я пытаюсь запустить сигнал R и консольное приложение. пока это мой код

    class Program
{
    static IDisposable dis = null;

    static void Main(string[] args)
    {
        try
        {
            dis = WebApp.Start<Startup>("http://localhost:10476");
            Console.WriteLine("hi");
            Console.ReadKey();
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        if (dis != null)
            dis.Dispose();
    }
}

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        app.MapSignalR();
    }
}

public class myHub : Hub
{
    public void Hello()
    {
        Console.WriteLine("hi");
        Clients.All.OK();
    }
}

UPDATE

это мой код клиента

function send() {
var connection = $.hubConnection("http://localhost:10476");
var hub = connection.createHubProxy("myHub");
hub.on("OK", function () {
    alert("HI");
});
connection.start({jsonp: true})
    .done(function () {
        console.log('connected');
        hub.invoke("Hello");
    })
    .fail(function (a) {
        console.log('not connected' + a);
    });

}

примечание: мой клиент и концентратор разделены (я хочу, чтобы клиент был расширением браузера, а сервер - приложением на моем компьютере) однако, когда я вызываю эту функцию, браузер сидел «Нет заголовка« Access-Control-Allow-Origin »на запрошенном ресурсе. Следовательно, Origin 'http://localhost:63343' не имеет доступа». мой код клиента правильный?

1 Ответ

0 голосов
/ 06 мая 2018

Ваш сервер SignalR и веб-сервер, который отвечает за загрузку вашей страницы, должны быть одинаковыми, если вы не включили CORS. Если вы хотите, чтобы они были в отдельных веб-приложениях, вы должны включить cors в вашем приложении SignalR. Для этого в Startup.cs:

 public void Configuration(IAppBuilder app)
 {
    app.Map("/signalr", map =>
    {
      map.UseCors(CorsOptions.AllowAll);
      var hubConfiguration = new HubConfiguration { };
      map.RunSignalR(hubConfiguration);
    });
  }

Для получения дополнительной информации см. Ссылку ниже:
https://cmatskas.com/signalr-cross-domain-with-cors/

...