【问题标题】:How to make a mysql realtime database with flutter? [closed]如何用颤振制作一个mysql实时数据库? [关闭]
【发布时间】:2020-11-02 01:25:40
【问题描述】:

我正在开发这个聊天应用程序,我显然不知道如何做到这一点,但我已经掌握了一些基础知识,例如我在我的应用程序和 mysql 数据库之间建立了连接并获取数据,但我认为我将需要使数据库成为实时数据库,我又不知道该怎么做这部分有什么帮助吗? 也是 Flutter 的新手 :)

【问题讨论】:

    标签: mysql flutter real-time


    【解决方案1】:

    https://flutter.dev/docs/cookbook/networking/web-sockets 使用本教程。还要研究套接字的概念。请记住,在制作聊天应用程序时,您还应该考虑隐私和安全。

    1. 连接到 WebSocket 服务器。

      web_socket_channel 包提供了连接到 WebSocket 服务器所需的工具。该包提供了一个 WebSocketChannel 这允许您同时收听来自服务器的消息并推送 向服务器发送消息。

      在 Flutter 中,使用以下行创建一个连接到服务器的 WebSocketChannel:

      final channel = WebSocketChannel.connect(
        Uri.parse('wss://echo.websocket.org'),
      );
      
    2. 监听来自服务器的消息。

      现在您已经建立了连接,请收听来自服务器的消息。向测试服务器发送消息后,它会发送 同样的消息。在此示例中,使用 StreamBuilder 小部件 侦听新消息,并使用一个 Text 小部件来显示它们。

      StreamBuilder(
        stream: channel.stream,
        builder: (context, snapshot) {
          return Text(snapshot.hasData ? '${snapshot.data}' : '');
        },    
      )
      
    3. 向服务器发送数据。

      要将数据发送到服务器,add() 消息到 WebSocketChannel 提供的接收器。

      channel.sink.add('Hello!');
      
    4. 关闭 WebSocket 连接。

      使用完 WebSocket 后,关闭连接:

      channel.sink.close();
      

    【讨论】:

      【解决方案2】:

      查看Askless,它简化了使用任何数据库创建实时 Flutter 应用程序

      我开发这个包的目的是为了简化 websocket 的使用。如果客户端失去连接,库将自动再次将数据发送到服务器,同样it has other benefitsAskless server side 需要用 JavaScript/TypeScript 编码。

      Flutter 客户端将能够使用 MySQL 或其他数据库监听实时更新,例如:

      //other widgets...
      
      AsklessClient.instance
          .listenAndBuild(
            route: 'allProducts',
            builder: (context,  snapshot) {
                if(!snapshot.hasData)
                   return Container();
      
                final listOfProductsNames =
                    (snapshot.data as List)
                    .map((product) => Text(product['name'])).toList();
      
                return Column(
                   children: listOfProductsNames,
                );
            }
          ),
      
      //other widgets...
      

      它还具有JavaScript/TypeScript 客户端支持,可以与 Flutter 配对,例如,如果您的应用程序有一个使用 React 或其他 SPA 框架的 Web 版本。

      【讨论】:

        猜你喜欢
        • 2021-06-28
        • 2021-09-23
        • 2020-02-20
        • 1970-01-01
        • 2021-04-24
        • 2020-08-26
        • 1970-01-01
        • 2020-08-20
        • 1970-01-01
        相关资源
        最近更新 更多