作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
问题是我找不到订阅 WebSocket 主题的解决方案。
我试过 web_socket_channel,但没有订阅特定主题所需的功能。
另外,我试过 stomp_sockjs,但它需要 SDK 版本 <2.0.0。我当前的 Dart SDK 版本是 2.4.0,我不想降低它,因为它会破坏我拥有的所有其他依赖项。
在 adhara_socket_io 等其他 WebSocket 库中,我找不到订阅主题的方法。
在 sockjs 和 stomp 库的帮助下,我设法使用 JS 使用来自 WebSocket 的数据。但是如何在 flutter 中做到这一点呢?
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 应用程序中执行相同操作的解决方案
最佳答案
WebSockets 没有主题的概念——你在 JS 中使用的协议(protocol)叫做 STOMP所以你需要为 Dart 使用 STOMP 库。
Pub 上有一些 STOMP 包,但我不知道它们有多完整(或可信度):
STOMP 中的 S 代表简单,因此如果两者都不起作用,您自己实现可能不会太困难。
关于flutter - 如何在 flutter 中订阅 Websocket 主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57418569/
我是一名优秀的程序员,十分优秀!