使用websocket node.js发送PDF文件
我有以下服务器:
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) {
有可能发送一个PDF文件到socket.on(“message”..函数?我可以使用send()发送消息,有一些函数发送文件?
谢谢
我只需要以二进制forms发送PDF。
fs.readFile(something.pdf,function(err,data){ if(err){console.log(err)} ws.send(data,{binary:true}); }
而在客户端,我会从接收到的二进制数据中创build一个blob和一个对象url。 从这个开始,你几乎可以做任何事情,说在一个新的窗口/选项卡中打开PDF文件。
conn.onmessage = function(e){ pdfBlob = new Blob([e.data],{type:"application/pdf"}); url = webkitURL.createObjectURL(pdfBlob); window.open(url); }
希望这个帮助。