gpt4 book ai didi

sockets - SignalR 似乎没有使用我在尝试连接时提供的根路径

转载 作者:行者123 更新时间:2023-12-02 04:45:03 26 4
gpt4 key购买 nike

我的 SignalR 服务器监听以下 URL:

http://staging.myserver.com/socket/signalr

我在本地测试过,它可以工作,但是当我部署时,我通过 NGINX 代理运行(因此 /socket/)

当它尝试连接到已部署的 SignalR 服务器时,它失败了,我可以看到它正在尝试使用省略了 /socket/ 的 URL 进行连接。

我试图调试以查看是否有一项运动会删除除基本 url 之外的所有内容并附加 /signalr 但我似乎找不到任何东西。

我可以点击以下 URL 并完美地查看我的集线器。

http://staging.myserver.com/socket/signalr/hubs

我只是不知道为什么它在尝试连接时从 url 中省略了 /socket

这里或多或少是我所拥有的一个例子

var connection = $.hubConnection('http://staging.myserver.com/socket/signalr');
var contosoChatHubProxy = connection.createHubProxy('contosoChatHub');
contosoChatHubProxy.on('addContosoChatMessageToPage', function(name, message) {
console.log(name + ' ' + message);
});
connection.start().done(function() {
//blah blah
});

我可以看到它在第一次初始化连接时使用了正确的 URL,但是在这个过程中的某个地方,它默认返回到

http://staging.myserver.com/signalr

我能够绕过它的唯一方法是在我的 NGINX 代理上向 / 添加附加代理。这不是能够坚持下去的东西,所以我需要弄清楚。

最佳答案

请参阅 GitHub 问题 #3649#3287其中描述了相同的问题,并给出了一些特定于 IIS 的指示,说明如何将响应中的内容转换为连接协商以重写 URL 属性。看起来来自服务器的响应中的 URL 用于在客户端设置一个名为 appRelativeUrl 的局部变量,用于后续交互。因此,另一个不太令人满意的解决方法是使用 app.MapSignalR("/socket/signalr", hubConfiguration); 修改/配置 SignalR 服务器,但我还没有走那条路,看看它是否会导致其他问题。

关于sockets - SignalR 似乎没有使用我在尝试连接时提供的根路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33834245/

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