0

Dart 变化迅速,所以我没有找到从 HttpResponse 获取数据流以通过 websocket 发送任意(甚至是二进制)数据的方法。甚至文件 IO 现在也没有 openInput/OutputStream。目前在 dart 中处理数据流的概念是什么?

我实际上想获得一种抽象数据流对象(如 C# 中的 System.IO.Stream)来实现序列化接口,然后将其应用于 websocket 数据流,这样我就可以用 new 更改我的网络数据包的序列化格式未来的序列化器实现,或创建内存流对象(如 C# 中的 System.IO.MemoryStream)以获取内存中的序列化数据。

最后 - 是否可以使用 websockets 发送二进制数据?

谢谢。

4

1 回答 1

1

HttpRequestdart:io实现Stream<List<int>>。_ 获取数据在流上侦听。最近在http://api.dartlang.org/docs/releases/latest/dart_io/HttpRequest.html的 API 文档中添加了一个示例。https://pub.dartlang.org/packages/http_server上的http_server包包含许多用于处理 HTTP 的实用程序类。

WebSocket实现StreamStreamSink。在流上列出时,接收到的对象将是类型StringList<int>取决于是否发送了字符串消息或二进制数据消息。同样,您可以添加类型的对象String并发送消息。List<int>WebSocket

接收到的二进制数据将是Uint8List来自dart:typed_data库的类型。我会推荐Uint8List在发送二进制数据时使用。

由于WebSocket使用流,流的所有功能(包括转换)都可用。

于 2013-09-06T07:05:23.850 回答