我想通过my_public_server.com
(ASP.NET核心Web应用程序)将SignlaR javascript浏览器客户端连接到my_private_api.com
(RESTful核心API)。客户端不知道,并且不知道private_api.com存在,即通信过程如下:
browser <--sees only-- webapp --makes actual SignalR request--> api
| |
|--auth--|
除了授权请求外,Webb应用程序仅将连接中继到实际的后端。如何构造公共服务器(和私有API)?
更准确地说,如何修改“ Get started with SignalR app”结构
//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
?