使用 Ratchet for PHP 通过 WebSocket 流式传输二进制数据

Posted

技术标签:

【中文标题】使用 Ratchet for PHP 通过 WebSocket 流式传输二进制数据【英文标题】:Stream Binary Data over WebSockets using Ratchet for PHP 【发布时间】:2014-01-19 16:30:23 【问题描述】:

我已经在 Windows/IIS 上使用 Ratchet for php 成功设置了一个 WebSocket 服务器。我使用了 Ratchet 可用的 WAMP(WebSocket 应用程序消息传递协议)设置,这样我就有了 Pub/Sub 和 RPC 功能。这对于聊天或简单更新等小事非常有用。我很好奇的是如何将原始二进制数据(如音频/视频)流式传输给目标受众(1 人或更多人)...

服务器: - Windows 7(64 位)/Windows 2008 Server Enterprise(64 位) - PHP 5.4.x - 棘轮(WebSocket 服务器)http://socketo.me/docs/wamp 客户端设置: - 高速公路|JS http://autobahn.ws/js/ - when.js https://github.com/cujojs/when

是否有使用我的设置的解决方案,允许我将二进制数据流式传输到目标受众?提前致谢!

【问题讨论】:

【参考方案1】:

从技术上讲,您可以像这样设置流式传输:Send and receive binary data over web sockets in javascript?

然后播放音频:Streaming Binary with Node.js and WebSockets

没有发现任何对通过流数据播放视频有用的东西,我认为目前它要么不可用,要么高度实验性。

【讨论】:

更多示例:dvcs.w3.org/hg/audio/raw-file/tip/webaudio/… 这些建议很受赞赏,但我已经研究过它们,它们都是 node.js 实现。不是 PHP(使用 Ratchet)。我会摆弄一下,看看我能不能做点什么。 @DigitalTrifecta 你最后有没有遇到有价值的事情? @Azuli42 - 为了让自己免于头疼,我最终切换到 Node / Express / Socket.io。【参考方案2】:

Somebody 有一个 Ratchet 的分支,他声称实现了二进制数据发送/接收。

看看this link。

请不要忘记将此答案标记为您接受的解决方案。 祝你好运

【讨论】:

我找到了github.com/ratchetphp/Ratchet/issues/393#issuecomment-329532173,但还没弄明白。

以上是关于使用 Ratchet for PHP 通过 WebSocket 流式传输二进制数据的主要内容,如果未能解决你的问题,请参考以下文章

React/ZMQ/Ratchet - Websocket 服务器响应

无需 cli 即可运行 Ratchet php 服务器

在 PHP 上使用 Ratchet 和 WebSockets 进行私人和群聊

PHP Ratchet 和 WebRTC

PUSH/PULL 模式中丢失的消息(Ratchet + PHP + ZeroMQ 推送集成)

Javascript 无法连接到 PHP Ratchet WebSocket 服务器