我们可以在node.js中的同一台服务器中定义两个监听端口吗?

时间:2014-12-24 18:37:27

标签: node.js mongodb

我编码访问笔记本电脑的webcamera。然后我分别创建了另一个聊天项目。它们都使用不同的服务器代码(node.js)。现在我想在一个代码中将它们合并在一起,但合并时我的服务器端代码显示错误。谁能帮我这个?下面是合并项目的服务器端代码:

var mongo=require('mongodb').MongoClient,

client=require('socket.io').listen(8888).sockets;

var static = require('node-static');

var http = require('http');

var file = new(static.Server)();

var app = http.createServer(function (req, res) {

file.serve(req, res);

}).listen(8888);

以下是其他代码......

2 个答案:

答案 0 :(得分:0)

我可能错了,但Node.Js是单线程的,因此无法完成。

答案 1 :(得分:0)

您的代码的问题是您尝试将两个不同的应用程序(在您的情况下为socket.io和http服务器)绑定到同一个端口8888.这是不允许的,因为您将收到此错误:

EADDRINUSE, Address already in use 

通过两次调用listen方法,您实际上尝试将两个应用程序绑定到作为参数传递的同一端口。

解决方案是将socket.ioserver绑定到不同的端口。