socket.on在socket.on服务器端api socket.io在nodejs中



为什么我们需要在此处将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)
});
});

为什么我们需要在这里把socket.on放在socket.on里面?

好吧,这就是事件驱动编程的工作原理。您可以通过安装eventListener来侦听事件。在这种情况下,当你从服务器上获得一个新套接字连接的事件时,你会在这个新套接字上安装事件侦听器,这样你就可以从中获得事件

还有其他写作方式吗?

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

最新更新