问题是我找不到订阅WebSocket主题的解决方案。
我已经尝试过 web_socket_channel ,但是没有必要的功能来订阅特定主题。
此外,我尝试了 stomp_sockjs ,但是它要求SDK版本为<2.0.0。我当前的Dart SDK版本是2.4.0,我不想降低它,因为它会破坏我拥有的所有其他依赖关系。
在其他WebSocket库(例如 adhara_socket_io )中,我找不到订阅主题的方法。
在 sockjs 和 stomp 库的帮助下,我设法使用JS使用了WebSocket中的数据。但是,如何做到这一点呢?
function connect() {
stompClient = Stomp.client("ws://xx.xxx.xxx.xxx/somePath");
stompClient.connect({"Access-Control-Allow-Origin":"*"}, function (frame) {
setConnected(true);
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/someStatus', function (greeting) {
showGreeting(JSON.parse(greeting.body));
});
});
}
因此,我想找到一种解决方法,但在我的Flutter应用程序中可以实现同样的目的
答案 0 :(得分:1)
WebSockets没有主题概念-您在JS中使用的协议称为STOMP,因此您需要为Dart使用STOMP库。
Pub上有一些STOMP软件包,但我不知道它们有多完整(或值得信赖):
尽管STOMP中的S代表“简单”,但如果两者都不起作用,那么实现自己就不会太困难。
答案 1 :(得分:0)
我已经找到了解决方法:https://github.com/killerWqs2/flutter-websocket-client
它允许通过WebSockets订阅一个踩脚主题