WebSocketException:不支持的 URL 方案“https”

问题描述 投票:0回答:1

我使用

Flutter
Spring Boot
RabbitMq
作为技术创建了一个简单的聊天应用程序。 当我尝试连接 stompClient 时出现错误。这里我使用
https://
请求进行连接。之前可以正常使用,迁移 Fluter 后就不行了。 (之前的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请求?我该如何解决这个问题?

提前谢谢您!

flutter dart websocket stomp websocketexception
1个回答
0
投票

您正在尝试连接到 WebSocket,但使用的是 http 地址。

https://app/chat/web-socket

WebSocket 端点应带有

wss
,而不是“
http
”或“https”。有点像

wss://app/chat/web-socket

更多信息这里

© www.soinside.com 2019 - 2024. All rights reserved.