【发布时间】:2016-08-29 05:23:39
【问题描述】:
我已经使用 actioncable 实现了聊天功能,但不知道如何通过它发送文件,或者它是否可能。
我正在尝试制作聊天应用程序,用户可以在其中上传文件到聊天室,其他用户可以立即看到,而无需重新加载页面作为可操作的报价。
【问题讨论】:
我已经使用 actioncable 实现了聊天功能,但不知道如何通过它发送文件,或者它是否可能。
我正在尝试制作聊天应用程序,用户可以在其中上传文件到聊天室,其他用户可以立即看到,而无需重新加载页面作为可操作的报价。
【问题讨论】:
可以使用 websockets 上传文件。 (File upload using java websocket API and Javascript)
但目前无法通过 ActionCable。由于 ActionCable 将 Websocket 包装在 Javascript 中,这也将是“hacky”来修补它,所以我会等待新版本并在 rails repo 上写一个问题。
因此,对于您的聊天应用,您仍然需要使用普通表单提交来上传文件。如果您希望它异步发生,您可以使用我的“修补”版本的 jquery-ujs,它允许发送带有“data-remote=true”标志的文件。 见https://github.com/Elektron1c97/jquery-ujs-files
【讨论】:
可以通过一些 js 将您的文件转换为客户端上的 base64 数据 url,然后通过 actioncable 将此 url 发送到将仅广播 base64 数据 url 的服务器。
我已经用图像、音频和视频文件对其进行了测试。不是 pdf 或 txt,但它应该可以工作。对于像视频这样的大文件,它是不稳定的。
这只是实验性的。
瞧。
【讨论】: