从浏览器传输到本地连接的iPhone

现在,我在我的iPhone应用程序上创build了一个HTTP服务器,并在那里托pipe了HTML。 然后在iPhone的同一networking上的系统的浏览器上访问它。 我可以看到我的浏览器上的文件。

现在使用WebSockets,我试图将文件从浏览器发送到应用程序, 但它不工作。 文字信息没有问题,但没有数据。 作为一种解决方法,我通过Base64string尝试了它,但在这种情况下,套接字也被closures。

对于使用JAVAScript上传,我已经写了这个代码,在这里我试图通过发送大小为200个字符的片段的Base64string。

function sendFile() { var preview = document.querySelector('img'); var file = document.querySelector('input[type=file]').files[0]; var reader = new FileReader(); var rawData = new ArrayBuffer(); reader.onloadend = function () { var stringContent = reader.result; preview.src = stringContent; var array = stringContent.match(/.{1,200}/g); for (var i = 0; i < array.length; i++) { ws.send(array[i]); }; } if (file) { reader.readAsDataURL(file); }else { preview.src = ""; } } 

在iPhone端,我使用了Libary CocoaHTTPServer的 WebSocket Class

套接字在这一行closures。

套接字在这一行关闭。

编辑

经过大量的试用和错误,我才知道这是发生如果我在Mac浏览器中打开这个,而不是在任何其他设备的浏览器如iPad,iPhone的情况下。 这是非常奇怪的用例,但它是真实的。

编辑II

想了很多,我find了一个线索,这对iPhone,iPad,iPod和Opera浏览器很好,因为他们有旧的websocket支持,我从这里find了这个。 。

在这个问题中,Guy有相反的情况,他试图closures这些浏览器上的连接,在我的情况下,它正在closures其他浏览器,如chrome,Mozilla等。这是因为一些称为Hybi格式化的数据包 。 这可能会帮助某人为我的案子build议解决scheme。

我想你应该看看官方的CocoaHTTPServer例子。 有一个HTTPfile upload: https : //github.com/robbiehanson/CocoaHTTPServer/tree/master/Samples/SimpleFileUploadServer

WS:协议是允许的? 例如config.xml

 <access origin="ws://192.168.1.xx/*"/> 
Interesting Posts