是否有任何類似XHR的瀏覽器API可用于通過HTTP將二進制流傳輸到服務器?我想提出一個HTTP PUT請求并以編程方式隨時間推移創建數據。我不想一次創建所有這些數據,因為可能有大量的數據坐在內存中。一些偽代碼來說明我正在得到什么:var dataGenerator = new DataGenerator(); // Generates 8KB UInt8Array every secondvar streamToWriteTo;http.put('/example', function (requestStream) { streamToWriteTo = requestStream;});dataGenerator.on('data', function (chunk) { if (!streamToWriteTo) { return; } streamToWriteTo.write(chunk);});我目前有一個Web套接字解決方案,但是我希望使用常規HTTP以便更好地與某些現有服務器端代碼互操作。編輯:我可以使用最新的瀏覽器API。我正在查看Fetch API,因為它支持請求主體的ArrayBuffers,DataViews,Files等。如果我能以某種方式偽造這些對象之一,以便可以將Fetch API與動態數據一起使用,那將對我有用。我嘗試創建一個Proxy對象,以查看是否有任何方法可以調用猴子補丁。不幸的是,似乎瀏覽器(至少在Chrome中)使用本機代碼而不是JS語言進行讀取。但是,如果我做錯了,請糾正我。
通過HTTP將數據從瀏覽器流傳輸到服務器的方法
當年話下
2019-11-19 15:26:40