【发布时间】:2020-04-30 16:47:41
【问题描述】:
我正在使用socket_io_client 包与nodejs 套接字服务器进行通信。
这是我的颤振套接字配置:
socket = IO.io(SocketUrl.url, <String, dynamic>{
'transports': ["websocket"],
"autoConnect": false
});
socket.connect();
socket.on('connect', (_) {
print('socket connected to server');
});
socket.on('newMessage', (message) {
print(message);
});
socket.on('event', (data) => print(data));
socket.on('disconnect', (_) => print('disconnect'));
}
这是文件发送的逻辑:
const data = {
userId: currentUser.id,
file: file.name
};
const stream = ss.createStream();
ss(socket).emit("send-file", stream, data);
ss.createBlobReadStream(file).pipe(stream);
这是从节点客户端完成的。我需要编写上述代码的飞镖版本。我看到 quiver 包具有创建流缓冲区的异步函数,但我不知道如何为这个特定的应用程序实现它。
已编辑:
void onSendFile(file, data) async {
final isFile = File(file);
var buffer = isFile.openRead();
//socket.emit("send-file",[buffer,data]);
socket.emitWithBinary("send-file", [buffer, data]);
}
【问题讨论】: