我已经使用actioncable实现了聊天功能,但不知道如何通过它发送文件,或者是否可能。
我正在尝试制作聊天应用程序,用户可以在聊天室中上传文件,其他用户可以立即看到,而无需像动作电影那样重新加载页面。
答案 0 :(得分:1)
可以使用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
答案 1 :(得分:0)
可以通过一些js将文件转换为客户端上的base64数据url,然后通过actioncable将该URL发送到仅广播base64数据url的服务器。
我已经用图像,音频和视频文件对其进行了测试。不适用于pdf或txt,但应该可以。对于像视频这样的大文件,它是不稳定的。
这只是实验性的。
Voilà。