为了账号安全,请及时绑定邮箱和手机立即绑定

socket.on inside socket.on 服务器端 api nodejs 中的

socket.on inside socket.on 服务器端 api nodejs 中的

泛舟湖上清波郎朗 2023-04-27 17:25:13
为什么我们需要放在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")})
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

在这里面:


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 中使用服务器和套接字进行编程的方式。


查看完整回答
反对 回复 2023-04-27
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信