飞镖变化很快,所以我找不到从HttpResponse获取数据流以通过websocket发送任意(甚至是二进制)数据的方法。即使文件IO暂时没有openInput / OutputStream。目前在dart中处理数据流的概念是什么?
我实际上想得到一些抽象的数据流对象(比如C#中的System.IO.Stream)来实现它的序列化接口,然后将它应用到websocket数据流,这样我就可以改变网络的序列化格式了将来使用新的序列化程序实现的数据包,或创建内存流对象(如C#中的System.IO.MemoryStream)以在内存中获取序列化数据。
最后 - 是否可以使用websockets发送二进制数据?
感谢名单。
答案 0 :(得分:1)
HttpRequest
中的dart: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
同时实现Stream
和StreamSink
。当在流上发现时,接收的对象将是String
或List<int>
类型,具体取决于是否发送了字符串消息或二进制数据消息。同样,您可以将String
和List<int>
类型的对象添加到WebSocket
以发送消息。
收到的二进制数据将来自Uint8List
库中的dart:typed_data
类型。我建议在发送二进制数据时使用Uint8List
。
由于WebSocket
使用流,因此可以使用流的所有功能,包括转换。