![](/img/trans.png)
[英]accessing other socket inside the socket.on('connection') in socket.io
[英]socket.on inside socket.on server side api socket.io in 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 中的 sockets 进行编程的方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.