javascript - 使用 Node.JS 一次监听多个端口

标签 javascript node.js

我只是想知道如何使用 Node.Js 一次监听多个端口。 目前,假设我有一个简单的聊天应用程序,它监听端口 8080 并将消息发送给通过该端口连接的每个人。但我想让它更像简单的实时聊天应用程序。如果有 10 个人,并且他们想向其中任何一个人发送消息,那么该消息只能发送给该特定人,而不是其他人。 这是我的简单代码:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

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


http.listen(3000, function(){
  console.log('listening on *:3000');
});

io.on('connection', function(socket){
  console.log('a user connected');
  socket.on('disconnect', function(){
    console.log('user disconnected');
  });
});

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
     io.emit('chat message', msg);
  });
});

任何帮助将不胜感激。

最佳答案

虽然技术上可行,但我不会使用多个端口,而是使用 Socket.io Rooms 。然后,您可以只向这些房间中的人员发送消息。

io.on('connection', function (socket) {
   socket.join('some room'); //join room

   io.to('some room').emit('some event'); //send messages to members of room
});

关于javascript - 使用 Node.JS 一次监听多个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25678782/

相关文章:

javascript - 为什么要使用 Object.create?

javascript - AngularJS 数据表 Controller 标记

javascript - ReferenceError: 'pictures' 未定义。使用 Node.js

java - urlConnection.getOutputStream 卡住

javascript - 如何将转义\{ 添加到以下正则表达式?

javascript - 验证 Redux 表单 : Nested Values

node.js - 为什么node js中的云函数无法正确部署

node.js - Coffeescript --watch 开关不适用于 Node 0.4.7

javascript - Angular 4 和 Node.js

javascript - 如何使用 Uppy 的 Dashboard 插件传递元数据