当前位置: 首页 > 知识库问答 >
问题:

没有互联网接入就没有Websocket连接(Ubuntu)

晁文斌
2023-03-14

我有一个SpringBoot应用程序,它实现了一个Websocket服务器(SockJS)。

我可以在本地网络上将客户端连接到该服务器,只要托管该应用程序的Ubuntu机器可以访问互联网。

2016-10-27 11:22:20.802调试9390---[nio-8085-exec-9]o.a.coyote.http11.org.apache.tomcat.util.net.NioEndpoint$KeyAttachment@6cb31793:org.apache.tomcat.util.net.NioChannel@231c3b0c:java.nio.channels.SocketChannel[连接本地=/192.168.1.104:8085远程=/192.168.1.106:51946]],状态:[OPEN_READ],状态:[关闭]

2016-10-27 11:22:20.849调试9390---[io-8085-exec-10]d.f.util。ConnectivityCheckUtil:找到本地网络接口:wlp2s0 192.168。1.104 2016-10-27 11:22:20.850调试9390---[io-8085-exec-10]d.f.util。你的ip地址是:192.168。1.104

2016-10-27 11:22:20.850调试9390---[io-8085-exec-10]d.f.i.v.b。i、 w.s.BrokerWebsocketHandler:已连接。。。t0obkpdo 2016-10-27 11:22:20.851信息9390---[io-8085-exec-10]d.f.i.v.b。i、 w.s.BrokerWebsocketHandler:websocketTextmessagesize=1000000

2016-10-27 11:22:20.852调试9390---[io-8085-exec-10]o.a.郊狼。http11。Http11NioProtocol:Socket:[org.apache.tomcat.util.net.NioEndpoint$KeyAttachment@1648207f:org。阿帕奇。公猫util。网NioChannel@231c3b0c:java。尼奥。频道。SocketChannel[connected local=192.168.1.104/192.168.1.104:8085 remote=/192.168.1.106:51947]],状态为[OPEN_READ],状态为:[升级]

2016-10-27 11:22:20.852调试9390---[io-8085-exec-10]o.a.郊狼。http11。Http11NioProtocol:Socket:[org.apache.tomcat.util.net.NioEndpoint$KeyAttachment@1648207f:org。阿帕奇。公猫util。网NioChannel@231c3b0c:java。尼奥。频道。SocketChannel[connected local=192.168.1.104/192.168.1.104:8085 remote=/192.168.1.106:51947]],状态为[OPEN_READ],状态为:[升级]

当我拔掉网络路由器上的广域网插头时,服务器会删除所有的WS连接,并且不允许新的连接。客户端将报告错误代码2000所有传输失败。

服务器将抛出以下错误:

2016-10-27 11:18:38.380调试9390---[nio-8085-exec-1]o.a.coyote.http11.org.apache.tomcat.util.net.NioEndpoint$KeyAttachment@5526ea03:org.apache.tomcat.util.net.NioChannel@5f9486ff:java.nio.channels.SocketChannel[关闭],状态:[OPEN_READ],状态:[关闭]

2016-10-27 11:18:51.396调试9390---[nio-8085-exec-2]o.a.郊狼。http11。Http11NioProtocol:Socket:[org.apache.tomcat.util.net.NioEndpoint$KeyAttachment@d05fac1:org。阿帕奇。公猫util。网NioChannel@5f9486ff:java。尼奥。频道。SocketChannel[connected local=/192.168.1.104:8085 remote=/192.168.1.106:51692]],状态为[OPEN_READ],状态为[CLOSED]

2016-10-27 11:19:01.437调试9390---[nio-8085-exec-6]o.a.郊狼。http11。Http11NioProtocol:Socket:[org.apache.tomcat.util.net.NioEndpoint$KeyAttachment@7f10c230:org。阿帕奇。公猫util。网NioChannel@5f9486ff:java。尼奥。频道。SocketChannel[connected local=192.168.1.104/192.168.1.104:8085 remote=/192.168.1.106:51693]],状态为[OPEN_READ],状态为[CLOSED]

2016-10-27 11:19:02.141调试9390---[nio-8085-exec-3]d.f.util。ConnectivityCheckUtil:找到本地网络接口:wlp2s0 192.168。1.104

2016-10-27 11:19:02.142DEBUG 9390---[nio-8085-exec-3]d.f.util.ConnectivityCheckUtil:你的ip是:192.168.1.104

2016-10-27 11:19:02.144DEBUG 9390---[nio-8085-exec-3]d. f. i. v. b. i. w. s.连接的...2cbhftw3

2016-10-27 11:19:02.144信息9390---[nio-8085-exec-3]d.f.i.v.b。i、 w.s.BrokerWebsocketHandler:websocketTextmessagesize=1000000

2016-10-27 11:19:02.147调试9390---[nio-8085-exec-3]d.f.i.v.b。i、 w.s.BrokerWebsocketHandler:会话2cbhftw3因关闭状态而关闭[代码=1011,原因=null]

2016-10-27 11:19:02.149错误9390---[nio-8085-exec-3]o. a. c. c.C.[.[.]Servlet.service()的servlet[调度Servlet]在上下文路径[]抛出异常[请求处理失败;嵌套异常是org.springframework.web.socket.sockjs.SockJsExc0019:未捕获的失败在SockJS请求, uri=http://192.168.1.104:8085/websocket/data/421/2cbhftw3/xhr_streaming;嵌套异常是org.springframework.web.socket.sockjs.SockJsTransportFailureExc0019:未能打开会话;嵌套异常org.apache.catalina.connector.ClientAbortExcture:java.io.IOExc0019:破碎的管道]与根本原因

JAVA木卫一。例外情况:管道破裂

一旦我插回WAN电缆,路由器又可以访问internet,WS-connections就可以重新开始工作。我已经在Netgear和TP Link的多个路由器上试用过。

我已经尝试过在ubuntu下手动设置网络接口设置,但是没有帮助。

知道是什么导致的吗?

比尔·丹尼尔

共有2个答案

东郭兴学
2023-03-14

只是修复了相同的问题,添加一行到服务器的主机文件,有些人认为像:

appsrv 192.168.1.15
钱元徽
2023-03-14

我觉得您必须设置一个静态IP,否则系统会根据wire shark尝试访问DNS发现服务,但它找不到,也没有连接到预期的IP。

 类似资料:
  • 问题内容: 正在使用Spring,并且·具有以下定义: ..... 当我的互联网连接断开时,我无法通过tomcat或码头运行我的应用程序。 它给: 有什么建议如何解决吗? 问题答案: 如果正确配置了名称空间且XSD文件位于类路径中,则无需在schemaLocation URL中使用classpath:协议。 Spring doc“ 注册处理程序和模式 ”显示了应如何完成。 在你的情况下,问题可能出

  • 我开Android Studio已经有一段时间了。直到今天都很好。今天android模拟器不能连接到互联网(用chrome浏览器和我在模拟器中的应用程序尝试),尽管它的wifi是连接的。怎么解决这个? 我已经试过了: null 模拟器wifi设置(自动ip/dhcp):Nexus 5s Api 28 IP地址:192.168.232.2 网关:192.168.232.1 子网掩码:255.255.

  • Android我的设备与wifi连接,但如果wifi已连接,但这些没有互联网连接,该怎么做 以下是我尝试检查是否没有互联网连接的代码 当无法访问互联网时,它总是返回true

  • 我有一个Android注册应用程序。当移动设备和计算机都连接到同一个wifi上时,它运行良好。但是,如果移动设备的互联网连接关闭,则会出现一条吐司消息 'java.net.连接异常:2500ms后连接到/100.118.242.179(端口80)失败:isConnted失败: ECONNREFUSED(连接被拒绝)'。 如何在移动设备上没有互联网连接的情况下运行该应用程序?

  • 这是我试图从云端获取数据的url,如果互联网已连接,则将执行异步任务。我编写了此方法,用于检查互联网是否已连接,在我的移动wifi中,当我尝试执行时,出现异常

  • 我正在开发一款嵌入式设备,它可以通过WiFi与iPad(仅限WiFi)进行通信。但是,这些设备未连接到internet。它们只是连接到一个特定的端口,该端口不断地转发某些信息。iPad连接到接入点,从DHCP接收IP地址,现在可以到达所需的位置 我看到的是频繁的断开连接,或连接中断。 我的怀疑是iPad无法连接到导致它重新扫描WiFi网络或以其他方式暂时中断连接。 有没有办法禁用这种行为,或者确保