0

我想做一个 websocket 服务器。它可以作为windows服务自动运行(我使用模块'node-windows')并加载文件dll(我使用模块'ffi')。

这是文件 server.js 中的代码

    var http = require("http");
    var ws = require("../../");
    var fs = require("fs");
    var ffi = require("ffi");

    var server = ws.createServer(function (connection) {
        connection.on("text", function (str) {
            var Lib = ffi.Library('add.dll', {'Add' : ['int',['int','int']]});
            var arr = str.split(":");
            var result = Lib.Add(Number(arr[0]), Number(arr[1]));
            connection.sendText(result);        
        });
    });
    server.listen(8081);

这是文件 install.js 中的代码。它将文件 server.js 设置为作为 Windows 服务运行

var Service = require('node-windows').Service;

var svc = new Service({
  name:'websocketServer',
  description: 'a simple websocket server',
  script: require('path').join(__dirname,'server.js'),
  env:{
    name: "NODE_ENV",
    value: "production"
  }
});

svc.on('install',function(){
  svc.start();
});

svc.install();

当我运行它时,我不知道为什么,但是 windows 服务会自动停止。如果我不使用'ffi',服务器将运行良好。任何人都可以帮我解决这个问题吗?

4

0 回答 0