Javascript nodejs中的socket.on内部socket.on服务器端api socket.io

Javascript nodejs中的socket.on内部socket.on服务器端api socket.io,javascript,node.js,sockets,Javascript,Node.js,Sockets,为什么我们需要把socket.on放在socket.on里面?这代表什么?还有其他的写作方法吗 这是nodejs中server.js的代码 var objExpress = require('express')() var objHttp = require('http').createServer(objExpress) var objSocketIO = require('socket.io')(objHttp) objExpress.get('/', (request, result)

为什么我们需要把
socket.on
放在
socket.on
里面?这代表什么?还有其他的写作方法吗

这是nodejs中server.js的代码

var objExpress = require('express')()
var objHttp = require('http').createServer(objExpress)
var objSocketIO = require('socket.io')(objHttp)

objExpress.get('/', (request, result) => result.send('hello'))

objSocketIO.on('connection', (argSocket) => {
  console.log('A user connected!');
  argSocket.on('message', (argMsg) => {
    console.log(argMsg);
    argSocket.broadcast.emit('message-broadcast-xyz', argMsg)
  })
})

objHttp.listen(3000, () => {
  console.log("Listening on port 3000")
})
其中:

objSocketIO.on('connection', argSocket => {
    // here's where you know the socket for a newly connected socket
});
是您收到新连接的套接字通知的唯一位置。如果您想在新连接的套接字上侦听事件,那么这里就是安装这些事件侦听器的地方

objSocketIO.on('connection', argSocket => {
    // here's where you know the socket for a newly connected socket
    // and where you can install event listeners on that newly connected socket
    argSocket.on('message', (argMsg) => {
        // here's where you get a message on that connected socket
        // from the previously installed event handler
        argSocket.broadcast.emit('message-broadcast-xyz', argMsg)
    });
});
为什么我们要把插座放在里面的插座上

这就是事件驱动编程的工作原理。您可以通过安装eventListener来侦听事件。在本例中,当您从服务器获取一个新套接字已连接的事件时,您可以在该新套接字上安装事件侦听器,以便从中获取事件

还有其他的写作方法吗


可以想出其他方法,但他们必须在幕后做类似的事情,因为监听事件是您在node.js中使用服务器和套接字编程的方式。

这是否回答了您的问题
objSocketIO
是库的主要实例。当检测到一个新的套接字连接时,它的
连接
事件触发,套接字实例被传递;内部事件监听器连接到套接字的
消息
事件(换句话说:假前提,你没有socket.on inside socket.on)@AdamAzad我认为这个问题在任何意义上都不是这个问题的重复