我想做一个 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',服务器将运行良好。任何人都可以帮我解决这个问题吗?