Soc*_*ash 5 javascript jquery playframework-2.0
我正在使用Play Framework 2.0,Javascript和WebSockets.在示例中,我有一个AKKA演员,他知道所有的websockets.单个WebSockets.In有一个ListenerCallback对象,用于处理来自客户端的传入请求.在客户端,我有Javascript/jquery将以JSON序列化的公式数据发送到websocket.这对于简单输入非常有效.但现在我想对文件做同样的事情.所以我必须以某种方式将文件数据转换为JSON数据(例如base64).有人知道如何正确地做到这一点吗?我想在Javascript中"收集"该文件,然后通过JSON将其发送到websocket.我知道base64效率不高,如果有人有其他选择,请告诉我.
谢谢
这是可能的,但是您必须使用WebSocket和FileReaderAPI,它们仅在较新的浏览器上受支持。Javascript 现在有一种TypedArray数据类型,可用于传输字节。例如,给定以下 HTML:
\xe2\x80\x8b<form>\n <input type="file" id="picture" />\n</form>\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n\n您需要观察文件change输入字段上的事件。在 Javascript 方面(jQuery):
$("#picture").change(function(){\n var reader = new FileReader;\n\n reader.onloadend = function (bytes) {\n var ws = new WebSocket("ws://host/path");\n ws.send(bytes); \n }\n\n reader.readAsArrayBuffer(this.files[0]);\n}\xe2\x80\x8b);\xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n\nWebSocket PDU 是最小化的框架(只有两个字节的标头),当您使用 WebSocket PDU 时send(),浏览器应该负责为二进制传输设置正确的操作码,并且在服务器上您应该能够读取原始字节流。我现在正在研究 Play API,以提供一个最小的工作示例。
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |