gpt4 book ai didi

signalr - 您可以连接到位于不同主机/服务器上的集线器吗?

转载 作者:行者123 更新时间:2023-12-04 14:42:45 27 4
gpt4 key购买 nike

假设我在 www.website.com 上有一个网站。我的带有 Signalr 的 SaaS 托管在 www.signalr.com 上。

我可以从 www.website.com 连接到 www.signalr.com 信号服务器吗?

代替 :

var connection = $.hubConnection();
var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');

就像是 :
var connection = $.hubConnection();
var contosoChatHubProxy = connection.createHubProxy('www.signalr.com/contosoChatHub');

最佳答案

简短回答:是 - As the SinalR documentation exemplifies.

第一步是在您的服务器上启用跨域。现在,您可以启用来自所有域的调用,也可以仅启用来自指定域的调用。 ( See this SO post on this matter )

    public void Configuration(IAppBuilder app)
{
var policy = new CorsPolicy()
{
AllowAnyHeader = true,
AllowAnyMethod = true,
SupportsCredentials = true
};

policy.Origins.Add("domain"); //be sure to include the port:
//example: "http://localhost:8081"

app.UseCors(new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context => Task.FromResult(policy)
}
});

app.MapSignalR();
}

下一步是配置客户端以连接到特定域。

使用生成的代理( see the documentation for more information ),您将连接到名为 TestHub 的集线器。通过以下方式:
 var hub = $.connection.testHub;
//here you define the client methods (at least one of them)
$.connection.hub.start();

现在,您唯一需要做的就是指定在服务器上配置 SignalR 的 URL。 (基本上是服务器)。

默认情况下,如果您不指定它,则假定它与客户端是同一个域。
`var hub = $.connection.testHub;
//here you specify the domain:

$.connection.hub.url = "http://yourdomain/signalr" - with the default routing
//if you routed SignalR in other way, you enter the route you defined.

//here you define the client methods (at least one of them)
$.connection.hub.start();`

应该就是这样。希望这可以帮助。祝你好运!

关于signalr - 您可以连接到位于不同主机/服务器上的集线器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32519529/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com