错误:在websocket io和angularjs中侦听EADDRINUSE

错误:在websocket io和angularjs中侦听EADDRINUSE,angularjs,node.js,websocket,socket.io,Angularjs,Node.js,Websocket,Socket.io,我有这个server.js var io = require('socket.io')(8080,function(){ console.log('server started'); }); console.log('tet'); 我在服务中添加io.connect: angular.module('installApp') .factory('socket', function () { // Service logic // ... var myIoSocket = io.conne

我有这个server.js

var io = require('socket.io')(8080,function(){
  console.log('server started');
});
console.log('tet');
我在服务中添加io.connect:

angular.module('installApp')
.factory('socket', function () {
// Service logic
// ...

var myIoSocket = io.connect('http://172.31.1.113:8080');
var socket = socketFactory({
  ioSocket: myIoSocket
});
// Public API here
return socket;
});
在my index.html中:

<script src="http://172.31.1.113:8080/socket.io/socket.io.js"></script>
<script src="bower_components/angular-socket-io/socket.js"></script>
<script src="scripts/services/socket.js"></script>

但是当我运行node server.js时,我得到了一个错误:listen EADDRINUSE。我认为我做得对,我在html中包含了所有的脚本。为什么我会得到这个请帮助。

您需要为节点服务器分配一个不同的端口号,如8888或80,以便端口不会与套接字端口冲突。

在哪个端口上运行节点服务器?我在端口8080中运行它更改端口号…是的,我更改了它8888,现在工作正常。谢谢WebSocket设计为与web服务器在同一端口上运行。事实上,每个webSocket连接都以http请求开始。事实上,如果安装正确,socket.io和node.js web服务器可以在同一端口上共存。这也大大简化了客户端的同源使用。