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作为节点参数。有关详细信息,请参见屏幕截图中的下方箭头。

enter image description here

另一答案

我用快递应用程序解决了同样的问题:

  1. 编辑文件“yourap / bin / www”
  2. 找到这条线: var port = normalizePort(process.env.PORT ||'3000');
  3. 替换为: 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 和 SSL

Node.js + Socket.io + Apache

Node.js + Socket IO + Apache + PHP 从 url 中删除端口?

将 Socket.IO 与 Apache、Node.js、SSL 和 CloudFlare (HTTP 500) 一起使用

Node.js 使用 socket.io 进行重构

Node.js端口兼容性