Dart变化很快,所以我找不到从HttpResponse获取数据流的方法,无法通过websocket发送任意(甚至是二进制)数据。即使是文件IO目前也没有openInput/OutputStream。目前在dart中处理数据流的概念是什么?
实际上,我希望获得某种抽象数据流对象(如C#中的System.IO.Stream )来实现序列化接口,然后将其应用于websocket数据流,这样我就可以在将来使用新的序列化程序实现来更改我的网络数据包的序列化格式,或者创建内存流对象(如C#中的System.IO.MemoryStream )来获得内存中的序列化数据。
最后--有没有可能用websockets发送二进制数据?
谢谢。
发布于 2013-09-06 15:05:24
dart:io中的HttpRequest实现了Stream<List<int>>。要获取数据,请监听数据流。最近在http://api.dartlang.org/docs/releases/latest/dart_io/HttpRequest.html的API文档中添加了一个示例。https://pub.dartlang.org/packages/http_server上的HTTP包包含许多处理http_server的实用程序类。
WebSocket同时实现了Stream和StreamSink。当在流上进行侦听时,根据发送的是字符串消息还是二进制数据消息,接收到的对象的类型是String还是List<int>。同样,您可以将String和List<int>类型的对象添加到WebSocket以发送消息。
收到的二进制数据将是来自dart:typed_data库的Uint8List类型。我建议在发送二进制数据时使用Uint8List。
当WebSocket使用streams时,streams的所有特性都可用,包括转换。
https://stackoverflow.com/questions/18635663
复制相似问题