【发布时间】:2022-10-04 19:58:26
【问题描述】:
第二天,我无法让我的颤振移动应用程序通过 websocket 接收消息。
据我了解,我使用 StompClien 与 Websocket 消息代理一起工作
日志中只有一个错误:WebSocketChannelException: [object Event]
我在 Internet 上的任何地方都找不到有关此错误或如何在颤振上使用 Web 套接字的信息。
我将非常感谢任何帮助!
春天的配置:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(final MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic");
registry.setApplicationDestinationPrefixes("/ws");
}
@Override
public void registerStompEndpoints(final StompEndpointRegistry registry) {
registry.addEndpoint("/our-websocket").withSockJS();
}
}
颤振应用
StreamController<List<String>> streamController = StreamController();
String ws_url = "ws://localhost:8080/our-websocket/websocket";
String destination = "/topic/messages";
String message_destination = "/ws/message";
var _listMessage = <String>[];
void main() {
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
home: MyApp(),
));
}
void onConnect(StompFrame frame) {
stompClient.subscribe(
destination: destination,
callback: (frame) {
Map<String, dynamic> result = json.decode(frame.body!);
//receive Message from topic
_listMessage.add(result['content']);
//Observe list message
streamController.sink.add(_listMessage);
},
);
}
final stompClient = StompClient(
config: StompConfig(
url: ws_url,
onConnect: onConnect,
onWebSocketError: (dynamic error) => print(error.toString()),
),
);
...(application rendering)
如果您将 Web 应用程序用作前端,则 Spring Web 套接字可以工作。 js 完全符合我的要求。
【问题讨论】:
标签: spring flutter dart websocket