我的一个 http-mock 服务器文件中有一个 websocket,初始化如下:
var WebSocketServer = require('ws').Server;
var socketServer = new WebSocketServer({port: 13434, path: "/update"});
稍后在文件中,我在连接时发生以下情况:
socketServer.on('connection', function(ws) {
ws.on('close', function(message) {
clearInterval(sendResults);
});
ws.on('message', function(message) {
handleClientMessage(ws, message);
});
sendResults = setInterval(function() {
ws.send(JSON.stringify(getResultsFromEntries()));
}, resultInterval);
});
但是,每当我编辑任何服务器文件时,都会出现以下错误:
File changed: "mocks/entry.js"
Just getting started with Ember? Please visit http://localhost:4200/ember-getting-started to get going
events.js:141
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE 0.0.0.0:13434
at Object.exports._errnoException (util.js:907:11)
at exports._exceptionWithHostPort (util.js:930:20)
at Server._listen2 (net.js:1250:14)
at listen (net.js:1286:10)
at net.js:1395:9
at nextTickCallbackWith3Args (node.js:453:9)
at process._tickCallback (node.js:359:17)
我猜我需要检测文件更改何时发生并关闭当前的 websocket 连接。在服务器死亡之前似乎不会调用进程退出,然后 process.on('exit', function() {}) 被称为服务器刷新的次数。它不会让我太困扰,因为我有一个脚本可以在 ember 服务器出现故障时重新启动它,但是其他开发人员不喜欢在编辑服务器文件时 ember 服务器出现故障。有任何想法吗?