Flutter中Socket自动添加端口0问题及移除方法咨询
Flutter Socket连接自动附加端口0的问题解决
问题原因
出现自动添加端口0的情况,主要是这两个原因:
- 你显式指定了HTTPS的默认端口
443,但socket_io_client旧版本的URL解析逻辑存在bug,错误地将默认端口识别为非标准端口,后续处理时附加了无效的端口0。 - 客户端内部在处理带默认端口的地址时,出现了端口拼接逻辑错误。
解决方法
- 直接省略默认端口:HTTPS协议的默认端口就是443,不需要手动指定,去掉URL里的
:443后,客户端会自动使用正确的端口,不会再附加端口0。修改后的代码:
socket = io('https://SITE_DOMAIN', OptionBuilder() .setTransports(['websocket']) .build() );
- 升级socket_io_client版本:如果必须保留端口指定,先检查你的依赖版本,旧版本的端口解析bug在新版中已经被修复,升级到最新稳定版即可解决问题。
- 手动指定socket路径:如果服务端的socket路径有特殊配置,可以通过
setPath参数明确指定,避免客户端自动拼接端口时出错:
socket = io('https://SITE_DOMAIN', OptionBuilder() .setTransports(['websocket']) .setPath('/socket.io/') // 替换为你服务端实际的socket路径 .build() );
内容的提问来源于stack exchange,提问作者Hassan
相关产品推荐
相关产品推荐

