我正在Flutter中构建一个可同时用作服务器和客户端的应用程序(用户将选择模式)。选择服务器模式后,我使用dart:io启动服务器并侦听websocket连接。当我在其他设备上打开应用程序并选择客户端模式时,客户端成功连接到服务器的套接字并使用StreamBuilder显示数据。
我面临的问题是,当一个客户端向服务器发送一条消息,然后服务器将其发送回时,我希望其他客户端也看到此消息,但现在他们没有。现在,只有发送邮件的客户才能获得答案。将其视为客户端之间的聊天应用程序。
我该如何实现?有什么建议吗?
这是服务器启动的方式:
void startServer() {
HttpServer.bind(InternetAddress.anyIPv4, 7000, shared: true)
.then((HttpServer server) {
print('Http server listening...');
startServerFunctions();
server.listen((HttpRequest request) {
if (WebSocketTransformer.isUpgradeRequest(request)) {
WebSocketTransformer.upgrade(request).then(handleWebSocket);
}
});
});
}
void handleWebSocket(WebSocket socket) {
print('Client connected!');
socket.listen((dynamic s) {
socket.add(s);
}, onDone: () {
print('Client disconnected.');
});
notifyListeners();
}