【问题标题】:How to stream data via WebSockets with Yaws?如何通过带有 Yaws 的 WebSocket 流式传输数据?
【发布时间】:2015-12-30 13:12:12
【问题描述】:

我想使用 Yaws 通过 WebSocket 连接流式传输数据。我已经阅读了有关 Streaming DataWeb 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 连接流式传输多个数据块,以便接收者将所有数据块视为一条碎片消息?

【问题讨论】:

    标签: yaws


    【解决方案1】:

    Yaws 流专注于发送 HTTP 响应的应用程序,这些应用程序在发送响应标头时具有未知的内容长度,因此希望使用 HTTP 分块,或者希望避免缓冲所有响应内容或使用 Comet-风格回复。不过,WebSocket 在发送数据方面没有相同的限制,因此流式传输需要使用 yaws_api:websocket_send/2#ws_frame{} 记录类型 fin 字段为流的每个块设置为 false,直到最后一块它必须是true。您可以在 Yaws source code examples directory 中找到 Yaws websocket 示例,这可能会有所帮助。

    【讨论】:

    • 感谢您的回复,我将尝试 yaws_api:websocket_send/2 与#ws_frame{}
    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    相关资源
    最近更新 更多