flutter - 颤振应用程序无法连接到 webSocket
问题描述
我正在构建一个颤振应用程序,它需要连接到服务器并使用 websocket 交换数据。服务器是 JAVA 并使用 SockJs 和 Stomp 来实现这个功能。
我正在使用来自 pub.dev/packages 的 Stomp dart 客户端和 webSocket 包。这是我尝试连接的代码的一部分:
clientConnect() async {
String cookie = await storage.read(key: "cookie");
final stompClient = StompClient(
config: StompConfig(url: 'ws://192.168.0.13:8080/....', onConnect: onConnect,
webSocketConnectHeaders: {"cookie": cookie }));
stompClient.activate();
}
我面临的问题是,我的颤振应用程序无法连接到服务器并引发此错误。
WebSocketException: Connection to 'http://192.168.0.12:8080/....' was not upgraded to websocket
解决方案
迟到的答案(stomp 包的维护者):
由于您似乎在 java 端使用 StompJS,因此您需要在客户端中使用特殊的 StompJS 配置。这是文档中的示例:
https://pub.dev/packages/stomp_dart_client#use-stomp-with-sockjs
StompClient client = StompClient(
config: StompConfig.SockJS(
url: 'https://yourserver',
onConnect: onConnectCallback
)
);
推荐阅读
- java - 如何在 Android Studio 中使用 Java 替换文本
- javascript - 打开具有特定 xy 坐标的网页
- sql - 合并存储过程
- ios - /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: 没有那个文件或目录
- typescript - 打字稿和通用函数
- javascript - 如何在html中为多个数字设置动画?
- node.js - 如何在 azure(Web 应用程序)中部署 nuxt(nuxt.js)?(未找到模块)
- c# - 获取每个大于“G”的字符
- algorithm - 找出两个唯一标记的通用树之间差异的算法
- javascript - 如何将数组输入到另一个数组reactjs