代码如下, var WebSocketServer = require(‘ws’).Server; var express = require(‘express’); var app = express.createServer();
var globalServerPort = 8888;
// 开启websocket服务,让客户端连接进入房间 var wsServer; try { wsServer= new WebSocketServer({server: app}); wsServer.on(‘connection’, function(ws) { // 提示 console.log(“a new connection ws :” + ws);
// 监听该连接打开
ws.onopen = function() {
console.log('connection is open ! ws is :' + ws);
};
// 监听该连接上的消息
ws.onmessage = function(event) {
// 打印
console.log(event.data);
};
// 监听该连接关闭
ws.onclose = function() {
console.log('connection is close ! ws is :' + ws);
};
});
app.listen(globalServerPort);
console.log('app 执行了listen ');
} catch (e) { console.log(‘catch an exception!’); } finally { console.log(‘finally !’); }
执行结果如下: E:>node test.js app ִ����listen finally !
node.js:201 throw e; // process.nextTick error, or ‘error’ event on first tick ^ Error: listen EADDRINUSE at errnoException (net.js:642:11) at Array.0 (net.js:743:26) at EventEmitter._tickCallback (node.js:192:40)
E:>
怎么代码放上去这么乱了
这种事件代码自然没法这样捕获异常,我猜你应该可以用onerror来处理出错。
try{…} catch{} 是无法捕获异步的错误的
学习下markdown
那一般异步的错误都怎么样处理啊?我程序中是想,如果监听端口被占用,那么出错后我再指定一个端口.有什么机制能及时得到异步的错误信息,并做处理?
@ly1234444 server.listen(80)是同步操作啊,你可以用try,catch的异步错误一般是写个错误事件监听器,或者在回调里处理。