Node.js 如何将socket.io与已开发的节点应用程序集成

Node.js 如何将socket.io与已开发的节点应用程序集成,node.js,express,socket.io,Node.js,Express,Socket.io,我开发了一个节点应用程序,它运行在端口3000中。我用的是meanstack。 还参考了一些教程,我开发了一个在端口3001上运行的socket.io聊天应用程序 如何将此聊天应用程序集成/添加到我的MEAN Stack应用程序中。如何同时运行两台服务器/端口? socket.io })) 您可以创建一个全局事件并在它们之间进行通信。您可以将emit函数添加到Middleware for express 如果它仍然相关(我相信这是因为我是出于同样的原因来到这里的),请执行以下操作: serve

我开发了一个节点应用程序,它运行在端口3000中。我用的是meanstack。 还参考了一些教程,我开发了一个在端口3001上运行的socket.io聊天应用程序

如何将此聊天应用程序集成/添加到我的MEAN Stack应用程序中。如何同时运行两台服务器/端口?

socket.io


}))

您可以创建一个全局事件并在它们之间进行通信。您可以将emit函数添加到Middleware for express


如果它仍然相关(我相信这是因为我是出于同样的原因来到这里的),请执行以下操作:

server.listen(app.get('port'),()=>{
log(`Socket正在监听端口:${app.get('port')}`);

});
您可以将两者合并到同一个进程中(只需在同一node.js进程中运行两个服务器),也可以在同一个port 3000 web服务器上运行socket.io应用程序。Socket(以及它下面的WebSocket)是专门设计的,以便它们可以共享用于其他类型web请求的web服务器。我尝试在同一端口上运行这两个应用程序,但只有第一个应用程序工作。另一个显示端口已在使用中。我该怎么做,我在哪里可以引用它?与其在与其他服务器相同的端口上为socket.io创建一个新服务器,您只需将其传递给其他服务器,然后socket.io就可以共享该服务器。
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server),
nicknames = [];

server.listen(3001);

 app.get('/',function(req, res){
  res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection',function(socket){
socket.on('new user', function(data, callback){
    if (nicknames.indexOf(data) != -1){
        callback(false);
    }else {
        callback(true);
        socket.nickname = data;
        nicknames.push(socket.nickname);
        updateNicknames();
    }

});

function updateNicknames(){
    io.sockets.emit('usernames', nicknames);
}


socket.on('send message',function(data){
    io.sockets.emit('new message',{msg:data, nick:socket.nickname});

});

socket.on('disconnect',function(data){
    if(!socket.nickname) return;
    nicknames.splice(nicknames.indexOf(socket.nickname), 1);
    updateNicknames();
});