我想使用Yaws通过WebSocket连接流式传输数据。我已经阅读了关于Streaming Data和Web Sockets的Yaws文档,我发现下面的Yaws API函数似乎相关:
yaws_api:websocket_send(Pid, {text, <<"hi there!">>}).
yaws_api:stream_chunk_deliver(YawsPid, BinData).
yaws_api:stream_chunk_end(YawsPid).
但目前尚不清楚它们是如何相关的,或者即使它们是相关的。任何人都可以解释如何通过Yaws websocket连接流式传输多个数据块,以便接收者将所有块视为一个碎片消息?
答案 0 :(得分:0)
Yaws流媒体主要关注发送响应标头时发送内容长度未知的HTTP响应的应用程序,因此希望使用HTTP分块,或者希望避免缓冲所有响应内容或使用Comet-的应用程序风格回复。 WebSocket对发送数据没有相同的限制,因此要求yaws_api:websocket_send/2
使用#ws_frame{}
记录类型fin
字段设置为false
,流的每个块直到最后一个块,它必须是true
。您可以在Yaws source code examples directory中找到可能有帮助的Yaws websocket示例。