java - Java 的 Deflater 类的 Node.js/Javascript 等价物

标签 java javascript node.js zlib deflate

我有一个使用 Inflater 的 Java 后端。我希望通过 Node.js 向它提供数据。

是否有任何等效于 Deflater 类的东西?

编辑:我应该澄清一点。我试过使用 https://github.com/dankogai/js-deflate然后对结果进行 base64 编码并将其传递给一个非常简单的 Java 程序,该程序对其进行 base64 解码并尝试对其进行膨胀(创建后端的简单模拟),但我不断收到异常:

java.util.zip.DataFormatException: unknown compression method
    at java.util.zip.Inflater.inflateBytes(Native Method)
    at java.util.zip.Inflater.inflate(Unknown Source)
    at java.util.zip.Inflater.inflate(Unknown Source)

而且我知道 Base64 编码过程在两端都正常工作。

我还应该注意,我无法更改 Java 后端。

最佳答案

你可以随便玩玩 https://github.com/waveto/node-compress

var compress=require("./compress");
var sys=require("sys");
var posix=require("posix");

// Create gzip stream
var gzip=new compress.Gzip;
gzip.init();

// Pump data to be compressed
var gzdata1 = gzip.deflate("My data that needs ", "binary"); 
sys.puts("Compressed size : "+gzdata1.length);

var gzdata2 = gzip.deflate("to be compressed. 01234567890.", "binary"); 
sys.puts("Compressed size : "+gzdata2.length);

var gzdata3=gzip.end();
sys.puts("Last bit : "+gzdata3.length);

// Take the output stream, and chop it up into two
var gzdata = gzdata1+gzdata2+gzdata3;
sys.puts("Total compressed size : "+gzdata.length);
var d1 = gzdata.substr(0, 25);
var d2 = gzdata.substr(25);

// Create gunzip stream to decode these
var gunzip = new compress.Gunzip;
gunzip.init();
var data1 = gunzip.inflate(d1, "binary");
var data2 = gunzip.inflate(d2, "binary");
var data3 = gunzip.end();

sys.puts(data1+data2+data3);

因为这工作正常,但在我使用 node_pcap 时遇到了一些问题。我认为这可能是一个很好的开始。

关于java - Java 的 Deflater 类的 Node.js/Javascript 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4985953/

相关文章:

javascript - 从 React 中的文件夹加载本地存储图像的正确方法

javascript - 无法关闭 div 内的下拉菜单

javascript - node - 将 jest 与 esm 包一起使用

node.js - 如何解决此错误 TypeError [ERR_INVALID_ARG_TYPE] : The 'request' argument must be string. 使用 nuxt.js 接收到的类型未定义

java - 如何使用 gradle bootRun 添加命令行属性?

java - Neo4j - 用于服务器数据库的 JPA

java - 更改 Pane 中较小 JPanel 的颜色

java - 获取集合大小的命名约定

javascript - Node 服务器不响应任何带有自定义 header 的 cors 模式下的 POST 请求

javascript - 本地服务器上的 AngularJS