SignalR как подключить клиент к серверу через другой сервер в качестве прокси - PullRequest
0 голосов
/ 28 февраля 2019

Я бы хотел подключить клиент браузера JavaScript SignlaR через my_public_server.com (основное веб-приложение ASP.NET) к my_private_api.com (основное API RESTful).Клиент не знает и не знает, что private_api.com существует, т. Е. Общение происходит следующим образом:

browser <--sees only--  webapp  --makes actual SignalR request--> api
                      |        |
                      |--auth--|

Веб-приложение, помимо авторизации запроса, просто передает соединение с фактическим бэкэндом.Как я могу структурировать публичный сервер (и частный API)?


Точнее, как я могу изменить структуру " Начало работы с приложением SignalR "

//client stays same
var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
connection.on("ReceiveMessage", function (user, message) {
   alert(message);
});
connection.start();

// web server
public class ChatHub : Hub
{
    public void SubsrcibeToApiGetMessages() { /*???*/ }
    //instead of
    //public async Task SendMessage(string user, string message)
    //{
    //    await Clients.All.SendAsync("ReceiveMessage", user, message);
    //}
}

// api
public class ChatHub : HubController<ChatMessage>
{
    [HttpGet("/v1v1/messages")]
    public IEnumerable<Message> Get()
    {
        // some implementation
    }
}

чтобы клиент подписывался на концентратор WebApp, но вместо этого контролировал GET my_private_api.com/v1/messages под капотом?

...