你好我正在嘗試傳輸文件。我有一些程序將文件轉換爲二進制文件,並通過網絡使用C++進行傳輸。我想知道我是否可以使用javascript和websockets傳輸文件?任何關於如何將我的C++程序整合到JavaScript的例子將不勝感激。謝謝。用JavaScript通過websockets傳輸文件
回答
JavaScript有兩個新的二進制類型:類型數組(arraybuffers)和斑點(基本文件)。
WebSockets支持發送和接收類型化數組和blob。
要使用WebSockets在兩個瀏覽器之間傳輸數據,您將需要一個服務器供它們連接(瀏覽器WebSocket支持僅在此處爲客戶端)。
如果您在C++中有一個處理文件傳輸的現有服務器,那麼您應該可以相當容易地向其添加WebSocket服務器支持。您可以在此頁面上找到的WebSocket客戶端和服務器的實現:http://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations
在JavaScript建立到WebSocket服務器的連接,你做這樣的事情:
ws = new WebSocket("ws://100.101.102.103");
的send()方法支持普通字符串,鍵入數組或blob。發送鍵入的數組和blob將導致服務器接收的幀作爲二進制幀(操作碼= 2)。如果服務器發送一個二進制幀/消息,則該事件的onMessage數據屬性將包含或者根據類型化的陣列或團塊
ws.onmessage = function (evt) {
console.log("Got ws message: " + evt.data);
};
:
ws.send(myTypedArray);
要接收消息你註冊消息處理binaryType屬性的設置。您可以更改接收到的二進制數據的類型,如下所示:
ws.binaryType = "blob"; // or "arraybuffer"
你想要做的事是不可能的。 WebSocket只能在客戶端模式下運行;它不能接受來自另一個WebSocket客戶端(如另一個瀏覽器)的連接。
可以通過服務器將WebSocket客戶端連接到另一個服務器,但此時它不再是真正的點對點,所以我不確定這是否真的有用或有趣。
謝謝,如果你能提供關於如何通過服務器做到這一點,將不勝感激的例子。 =) – DasBoot 2012-07-09 06:33:10
- 1. 通過Putty傳輸文件
- 2. 通過ICMP傳輸文件
- 3. 通過ODATA傳輸文件
- 4. 通過ssh傳輸文件
- 5. 通過WCF文件傳輸
- 6. 通過SFTP傳輸文件
- 7. 通過SFTP傳輸文件
- 8. 通過qpid傳輸文件
- 9. 通過HTTP傳輸文件
- 10. 通過telnet傳輸文件?
- 11. 什麼是通過WebSockets傳輸文本的正確方式?
- 12. 使用cmd通過ftp傳輸文件
- 13. 使用SleekXMPP通過XMPP傳輸文件
- 14. 使用javascript通過WebSockets連接到Rserve
- 15. 通過Websockets上傳到Play Framework 2.0的文件
- 16. 通過HTTP通過WCF流式傳輸文件上傳IOException
- 17. 大型文件傳輸的最佳方法通過使用PHP(POST)通過http調用文件傳輸
- 18. 通過Websockets進行視頻流式傳輸
- 19. 通過websockets流式傳輸音頻IBM不工作
- 20. 通過websockets發送popen輸出
- 21. 如何通過tcpip傳輸db文件?
- 22. 通過網絡傳輸文件
- 23. 通過套接字傳輸文件c
- 24. C#文件傳輸通過套接字
- 25. 通過Java中的Socket傳輸文件
- 26. 通過WiFi在iPhone上傳輸文件
- 27. 通過JMX方法傳輸文件
- 28. 通過USB進行Android文件傳輸
- 29. 通過插座傳輸文件
- 30. p2p文件傳輸通過互聯網
我也有興趣如果這是可能的。 – DasBoot 2012-07-09 06:37:49