在Dart中使用服务器的带有WebSockets的Flutter应用

时间:2019-09-12 19:12:17

标签: flutter dart websocket

我正在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();
}

0 个答案:

没有答案