繁体   English   中英

使用websocket node.js发送PDF文件

[英]send PDF file using websocket node.js

我有以下服务器:

 var pvsio                   = require("./pvsprocess"),
        ws                      = require("ws"),
        util                    = require("util"),
        http                    = require("http"),
        fs                      = require("fs"),
        express                 = require("express"),
        webserver               = express(),
        procWrapper             = require("./processwrapper"),
        uploadDir               = "/public/uploads",
        host                    = "0.0.0.0",
        port                    = 8082,
        workspace               = __dirname + "/public",
        pvsioProcessMap         = {},//each client should get his own process
        httpServer              = http.createServer(webserver),
        baseProjectDir          = __dirname + "/public/projects/",
        PDFDocument             = require ("pdfkit");

    var p, clientid = 0, WebSocketServer = ws.Server;

...
var wsServer = new WebSocketServer({server: httpServer});
    wsServer.on("connection", function (socket) {
        var socketid =  clientid++;
        var functionMaps = createClientFunctionMaps();
        socket.on("message", function (m) {

是否可以在socket.on(“ message” .. function)内部向客户端发送pdf文件?我可以使用send()发送消息,有一些函数可以发送文件吗?

谢谢

我只会以二进制形式发送pdf。

fs.readFile(something.pdf,function(err,data){
    if(err){console.log(err)}
    ws.send(data,{binary:true});
}

在客户端,我将根据接收到的二进制数据创建一个blob和一个对象url。 从此以后,您几乎可以做任何事情,说在新窗口/标签中打开pdf文件。

conn.onmessage = function(e){
    pdfBlob = new Blob([e.data],{type:"application/pdf"});
    url = webkitURL.createObjectURL(pdfBlob);
    window.open(url);
}

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM