我使用
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请求?我该如何解决这个问题?
提前谢谢您!
您正在尝试连接到 WebSocket,但使用的是 http 地址。
https://app/chat/web-socket
WebSocket 端点应带有
wss
,而不是“http
”或“https”。有点像
wss://app/chat/web-socket
更多信息这里