socket.on inside socket.on 服务器端 api 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")

})


泛舟湖上清波郎朗
浏览 109回答 1
1回答

BIG阳

在这里面: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 中使用服务器和套接字进行编程的方式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript