环境:ubuntu14.04
通过node命令执行server_ssl.js时出现如下错误
root@ubuntu-server:/# node /usr/local/src/easyrtc/server_example/server_ssl.js
info - EasyRTC: Starting EasyRTC Server (v1.0.13) on Node (v0.10.42)
2017-07-07T10:16:21.999Z - debug - EasyRTC: Emitting event 'startup'
2017-07-07T10:16:21.999Z - debug - EasyRTC: Running func 'onStartup'
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:905:11)
at Server._listen2 (net.js:1043:14)
at listen (net.js:1065:10)
at Server.listen (net.js:1139:5)
at Object.<anonymous> (/usr/local/src/easyrtc/server_example/server_ssl.js:21:10)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
注:我什么也没看不出来,下面的英文我也看不太懂,以下纯属猜测
猜测:1.是不是版本冲突问题 结论:很大概率与版本无关 理由:刚安装时可以顺利执行,在安装了山一样的软件后,回头启动easyrtc时,发现启动失败。不过,可能我中途不小心动了也有可能,确认一下吧。
root@ubuntu-server:/usr/local/src/node-v0.10.42-linux-x64/bin# node --version
v0.10.42
root@ubuntu-server:/usr/local/src/easyrtc/server_example# grep -ir version /usr/local/src/easyrtc
/usr/local/src/easyrtc/api/easyrtc.js: *@version 1.0.13
/usr/local/src/easyrtc/api/easyrtc.js: this.apiVersion = "1.0.13";
看来版本应该不存在问题
检查一下日志吧,
root@ubuntu-server:/usr/local/src# vim /var/log/syslog //正常
root@ubuntu-server:/usr/local/src# find /usr/local/src/node-v0.10.42-linux-x64 -name "*log*" //查看node里面的日志
/usr/local/src/node-v0.10.42-linux-x64/lib/node_modules/npm/node_modules/npmlog //目录
/usr/local/src/node-v0.10.42-linux-x64/lib/node_modules/npm/node_modules/npmlog/log.js //脚本
/usr/local/src/node-v0.10.42-linux-x64/lib/node_modules/npm/node_modules/request/node_modules/hawk/images/logo.png //二进制文件
我可能用错了找日志的方法,easyrtc软件用相同的方法检查了日志,未发现问题。
通过百度得知,可能是端口冲突问题
root@ubuntu-server:/usr/include/nodejs# vim /usr/local/src/easyrtc/server_example/server_ssl.js //文档中出现了8443端口,
httpApp).listen(8443);
root@ubuntu-server:/usr/include/nodejs# netstat -anlp | grep 8443 //通过netstat命令发现,端口8443已经被占用了,终于找到了报错的原因
tcp6 0 0 :::8443 :::* LISTEN 32380/java
将端口8443修改或杀死占用该端口的程序,便可以顺利执行了。