如何用颤振制作一个mysql实时数据库? [关闭]

Posted

技术标签:

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

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

【问题讨论】:

【参考方案1】:

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

    连接到 WebSocket 服务器。

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

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

    final channel = WebSocketChannel.connect(
      Uri.parse('wss://echo.websocket.org'),
    );
    

    监听来自服务器的消息。

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

    StreamBuilder(
      stream: channel.stream,
      builder: (context, snapshot) 
        return Text(snapshot.hasData ? '$snapshot.data' : '');
      ,    
    )
    

    向服务器发送数据。

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

    channel.sink.add('Hello!');
    

    关闭 WebSocket 连接。

    使用完 WebSocket 后,关闭连接:

    channel.sink.close();
    

【讨论】:

【参考方案2】:

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

我开发这个包的目的是为了简化 websocket 的使用。如果客户端失去连接,库将自动再次将数据发送到服务器,同样it has other benefits。 Askless 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 版本。

【讨论】:

以上是关于如何用颤振制作一个mysql实时数据库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何用颤振制作顶部导航抽屉?

如何用颤振在List中记录查询firebase数据库?

如何用 PHP 制作一个简单的登录系统? [关闭]

如何用 PHP 制作聊天室脚本? [关闭]

如何用opengl制作低分辨率图形? [关闭]

如何用颤振解决代理设置问题?