wifi 路由器上的 Websocket 连接超时问题

wifi 路由器上的 Websocket 连接超时问题

我在 laptop1 上运行着一个 HTTP 和 Websocket 服务器(分别在端口 8070 和 8080 上,通过 HTTP 为 Web 应用程序提供服务,然后连接到 WS 服务器以获取状态更新),并且我从 laptop2 连接到它(在 Firefox 和 Chrome 中加载 Web 应用程序)。浏览器可以正常获取 Web 应用程序和资产,但 WS 连接只能通过我的 Lancom 路由器(只有以太网,没有 wifi)进行,不能通过 Linksys WRT 54G(测试了以太网和 wifi)或 TP-LINK MR3020(仅支持 wifi 的旅行路由器)进行,对于这些路由器,我总是会尝试 WS 连接超时。

知道为什么它不能在这些路由器上工作吗?

我需要处理的用例是:旅行时使用我的 Android 平板电脑上的网络应用程序与我的笔记本电脑 1 上的后端进行通信(使用 TP-Link MR3020 路由器),所以我试图弄清楚为什么 websocket 连接无法通过 wifi 路由器工作。

几个月前,我使用了邻居的 wifi,并且可以通过它工作(在我的平板电脑和笔记本电脑之间,以及两台笔记本电脑之间),但他有一个不同的(大型)路由器,我需要它与 TP-LINK MR3020 旅行路由器一起工作,因为我需要一个便携式设置。

(在我的邻居搬走后(所以我不再在平板电脑和笔记本电脑之间使用他的路由器,并尝试了 TP-LINK MR3020)我第一次注意到它在那里不起作用,所以我尝试在两台笔记本电脑之间使用,然后我发现浏览器开发控制台超时了……)

这让我抓狂了,知道为什么我总是在使用 websockets 时超时吗,除了通过以太网使用 Lancom 路由器(甚至通过以太网使用 Linksys 路由器)?

顺便说一句,我确实尝试了 websocket 服务器的不同端口(例如 8077),认为也许路由器正在使用该端口,但我得到了相同的结果(WS 连接超时):(

我还可以尝试什么?

这不是 Windows 防火墙问题(laptop1 运行的是 Windows 8.1,我明确允许该应用程序监听公共和私有网络上的端口),也不是 wifi 问题(它可以与我邻居的 Fritzbox 路由器一起使用),它可以通过以太网与 Lancom 路由器一起使用,但不能与 Linksys 一起使用,这可能是什么原因造成的?

那么,Websockets 有何特殊之处,路由器可以让普通 HTTP 流量通过,却不允许 Websockets 通过?

我怎样才能准确找出 WS 连接在链中的哪个点失败,以查明原因?

谢谢!

相关内容