node.js表示正在使用的socket.io端口3000
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js表示正在使用的socket.io端口3000相关的知识,希望对你有一定的参考价值。
我一直在关注如何使用socket.io创建一个简单的聊天应用程序(http://socket.io/get-started/chat/)教程。
我尝试使用Express创建它,我想知道为什么端口3000已经在使用?除非我更改端口号,否则以下代码将无效。
/* Make the http server listen on port 3000. */
http.listen(3000, function()
console.log('listening on *:3000');
);
表达使用端口做路由等其他事情吗?有没有一种简单的方法可以找到该端口上发生的情况?
我可能也会对我需要的东西做些蠢事:
var express = require('express');
var app = require('express')();
var http = require('http').Server(app);
var router = express.Router();
var io = require('socket.io')(http);
谢谢。
我也遇到了这个问题,我解决了这个问题:
不要使用npm start
来启动您的网络应用程序
请改用node app.js
试试跑步:
netstat -anp tcp | grep 3000
这应该显示使用端口3000的进程的名称。这是StackOverflow上的another issue,它更深入地介绍了这个问题。
在开发过程中执行此操作的最佳方法之一是通过IDE,您可以在其中进行全面调试并逐步完成代码。
如果您使用的是WebStorm,则可以使用。从运行配置 - >编辑配置 - > Node.js并添加app.js
作为节点参数。有关详细信息,请参见屏幕截图中的下方箭头。
我用快递应用程序解决了同样的问题:
- 编辑文件“yourap / bin / www”
- 找到这条线: var port = normalizePort(process.env.PORT ||'3000');
- 替换为: var port = normalizePort('XXXX');
其中XXXX是您要使用的端口号
然后你就可以自由地开始吧!的xD
我曾经(忘记我曾经)安装了ntop,默认情况下也使用了端口3000,因此得到了与此处描述的相同的错误。
正如其他人所提到的,使用netstat或lsof来查找有问题的服务(并在命令前加上sudo,以获取正确的进程名称):
sudo lsof -P | grep ':3000'
- 要么 -
sudo netstat -anp tcp | grep 3000
在Ubuntu上,服务被禁用(简单):
service ntop stop
类似于上面的回答,不使用npm start
。
我正在使用nodemon和expressjs和expressjs生成器。我使用nodemon来执行npm start
,而npm start自己执行node ./NodeApp/bin/www
所以我编辑让nodemon自己执行node ./NodeApp/bin/www
并且该错误消失了。
结论
之前
的package.json
"scripts":
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node ./NodeApp/bin/www",
"build": "webpack --watch",
"dev": "nodemon --exec npm start"
,
后
"scripts":
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack --watch",
"dev": "nodemon --exec node ./NodeApp/bin/www"
,
所以现在我用npm run dev
运行我的服务器,没有更多的错误。
对我来说有助于使用3000 || 3333
,它解决了这个问题
我解决了这个问题:
npm install shelljs
并在启动侦听端口之前为kill nodejs进程添加代码
var shell = require('shelljs');
shell.exec("pkill nodejs");
shell.exec("pkill node");
/* Make the http server listen on port 3000. */
http.listen(3000, function()
console.log('listening on *:3000');
);
以上是关于node.js表示正在使用的socket.io端口3000的主要内容,如果未能解决你的问题,请参考以下文章
Node.js + Socket IO + Apache + PHP 从 url 中删除端口?
将 Socket.IO 与 Apache、Node.js、SSL 和 CloudFlare (HTTP 500) 一起使用