You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter升级至3.10.0后StompClient连接报错:不支持HTTPS协议

Flutter升级后StompClient HTTPS连接报错解决方法

我用Flutter、Spring Boot和RabbitMQ开发了一个简易聊天应用,通过StompClient建立连接时出现错误,当前使用HTTPS请求连接。该功能在Flutter 2.2.3版本中正常运行,但升级到3.10.0版本后失效。

实现代码如下

_stompClient = StompClient(
          config: StompConfig(
            url: 'https://app/chat/web-socket',
            stompConnectHeaders: headers,
            onConnect: (frame) {

              Timer.periodic(Duration(seconds: 10), (_) {
                _stompClient.send(
                    destination: messageSendUri,
                    headers: headers,
                    body: jsonEncode(body));
              });
            },
            beforeConnect: () async {
              print('Trying to connect...');
              await Future.delayed(Duration(seconds: 1));
              print('Connecting...');
            },
            onStompError: (frame) => print(frame.body),
            onWebSocketError: (error) => print(error.toString()),
          ),
        );

运行时错误信息

I/flutter (25662): Trying to connect...
I/flutter (25662): WebSocketException: Unsupported URL scheme 'https'
I/flutter (25662): WebSocketException: Unsupported URL scheme 'https'
I/flutter (25662): WebSocketException: Unsupported URL scheme 'https'
I/flutter (25662): Connecting...
I/flutter (25662): WebSocketException: Unsupported URL scheme 'https'
...

不是不允许使用HTTPS请求,问题出在WebSocket连接的协议格式上。StompClient的WebSocket连接需要使用对应加密协议的URL scheme:

  • 当使用HTTPS时,WebSocket的URL协议应该是wss://而非https://
  • 普通HTTP对应的是ws://

只需将URL修改为:

url: 'wss://app/chat/web-socket',

Flutter 3.x版本对WebSocket的协议校验更严格,之前的版本可能自动兼容了错误的scheme,升级后则明确要求使用正确的WebSocket协议前缀。修改后即可正常建立连接。

内容的提问来源于stack exchange,提问作者Tharindu Lakshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:41:23