簡體   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