📜  Flutter——WebSockets(1)

📅  最后修改于: 2023-12-03 15:15:09.097000             🧑  作者: Mango

Flutter - WebSockets

WebSockets是一种协议,它允许客户端和服务器之间进行双向通信。它非常有用,因为它可以在客户端和服务器之间实时传递数据,而不需要前期的请求/响应周期。

在Flutter中,我们可以使用Dart的web_socket_channel包来实现WebSockets。

安装

pubspec.yaml文件中添加以下依赖:

dependencies:
  web_socket_channel: ^2.1.0

然后运行以下命令来安装:

flutter pub get
使用

要使用WebSockets,我们需要使用WebSocketChannel.connect()方法来连接服务器,然后使用该通道来进行通信。

连接
import 'package:web_socket_channel/io.dart';

final channel = IOWebSocketChannel.connect('ws://localhost:8080');

在上面的代码中,我们使用IOWebSocketChannel来连接一个WebSocket服务器。如果你使用的是REST API服务器,那么你可以使用http包中的WebSocket类,方法类似。稍后我们会用更多的例子来说明。

发送和接收信息
import 'package:web_socket_channel/io.dart';

final channel = IOWebSocketChannel.connect('ws://localhost:8080');

//发送一个字符串到服务器
channel.sink.add('Hello, Server!');

//接收来自服务器的信息
channel.stream.listen((message) {
  print('Received: $message');
});

在上面的代码中,我们使用sink在WebSocket通道上发送了一条消息,并使用stream监听来自服务器的消息。

关闭连接

在完成使用WebSocket之后,需要关闭与服务器的连接。

import 'package:web_socket_channel/io.dart';

final channel = IOWebSocketChannel.connect('ws://localhost:8080');

//发送一些数据
channel.sink.add('Goodbye, Server!');

// 关闭WebSocket连接
channel.sink.close();
总结

在本文中,我们学习了如何使用WebSockets在Flutter中进行双向实时通信。我们使用web_socket_channel包来连接到服务器,并使用sinkstream来发送和接收消息。如果您需要更多实用的例子,请查看web_socket_channel包的文档。