一个网友的求助:
https://stackoverflow.com/questions/49788422/socket-on-event-gets-triggered-multiple-times
其他朋友建议他用socket.once, 而非socket.on

socket对象本身并没有on的方法:

原型链上才有:

执行on(“createKOIID”, fn)之前的监听事件函数池:

使用on注册之后:

再看once的实现:
on是一个函数,once传入的监听函数作为一个属性赋值到on上:

然后照常用on注册事件:

注册完毕。
事件触发时,首先执行on:

在on里面会先解除掉对event的注册:

第1600行会把事件处理函数从handler repository里移除掉。

最后执行对应的事件处理函数。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

nodejs里socket.on和socket.once的单步调试相关推荐

  1. 雅马哈机械手程序 程序里有跟相机Socket通信数据处理,此流程为锁螺丝

    雅马哈机械手程序 程序里有跟相机Socket通信数据处理,此流程为锁螺丝,对每个螺丝位置进行拍照定位补偿,托盘定义里也设计到 9212615053398703咸鱼也有梦想@@

  2. 雅马哈机械手程序 程序里有跟相机Socket通信数据处理,此流程为锁螺丝,对每个螺丝位置进行拍照定位补偿

    雅马哈机械手程序 程序里有跟相机Socket通信数据处理,此流程为锁螺丝,对每个螺丝位置进行拍照定位补偿,托盘定义里也设计到, 可以 ID:6212615053398703咸鱼也有梦想@@

  3. 1.socket编程:socket编程,网络字节序,函数介绍,IP地址转换函数,sockaddr数据结构,网络套接字函数,socket相关函数,TCP server和client

     1  Socket编程 socket这个词可以表示很多概念: 在TCP/IP协议中,"IP地址+TCP或UDP端口号"唯一标识网络通讯中的一个进程,"IP 地址+端 ...

  4. Nginx 中 fastcgi_pass 监听端口 unix socket和tcp socket差别

    Nginx连接fastcgi的方式有2种:unix domain socket和TCP,Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进 ...

  5. nginx php fpm socket,php-fpm 使用 socket 方式和 nginx 通讯,(速度优化)

    1.什么是域Socket "Unix domain socket 或者 IPCsocket 是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信.与管道相比,Unix domain ...

  6. TCP socket和web socket的区别

    小编先习惯性的看了下某中文百科网站对Web Socket的介绍,觉得很囧.如果大家按照这个答案去参加BAT等互联网公司的前端开发面试,估计会被鄙视. 还是让我们阅读一些英文材料吧. 让我们直接看sta ...

  7. java socket 超时_Java Socket超时浅析

    套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的"终端".针对一个特定的连接,每台机器上都有一个"套接字",可以想象它们之间有一条 ...

  8. Stream Socket 和 Datagram socket

    一总述 Stream Socket与Datagram Socket不同,它有一个永久性的链接,可以确保数据可靠的发送到对方.但是Stream Socket所占的资源更多. Java主要通过Socket ...

  9. Nginx 中 fastcgi_pass 监听端口 unix socket和tcp socket

    Nginx连接fastcgi的方式有2种:unix domain socket和TCP,Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进 ...

  10. c语言 爬虫 socket,爬虫遇到 Socket,莫慌,肝就完了!

    1. 前言 Socket 被称为套接字,是对 TCP/IP 协议的封装,它是传输层和应用层间的抽象层 微信 相比 HTTP 的短链接通讯方式,Socket 可实现客户端和服务器的长链接通讯网络 Fid ...

最新文章

  1. Vue+DataTables warning:table id=xxxx -Cannot reinitialize DataTable.报错解决方法
  2. 怎样学好python-零基础如何学好Python?
  3. (四)java B2B2C Springboot仿淘宝电子商城系统技术解决方案
  4. oracle 意外事件,Oracle数据库REDO损坏ora-00333修复手札
  5. 工业局的云计算机,广州市海珠区科技工业商务和信息化局方奕涛局长带队二次调研云算...
  6. iPhone12年简史:手机之王的荣耀与溃败
  7. platform设备的添加
  8. Zabbix3 ——Server端的安装配置小结
  9. JavaScript教程带你快速入门
  10. jmeter安装包双击没反应_Jmeter下载安装及使用
  11. 旧手机利用(Android),当wifi,当mic,当ipcamera
  12. 上古计算机语言,微软开源其上古编程语言GW-BASIC
  13. jquery,Ajax判断验证码是否正确,不正确阻止提交
  14. 失眠就吃安眠药真的好吗?好心情送你沾枕到天亮的诀窍
  15. 用html2canvas长按保存h5页面,html2canvas - 微信中长按存图 - 将h5活动结果保存到本地...
  16. 课时31 永久储存:腌制一缸美味的泡菜
  17. LOTO 示波器软件功能——文件存储和回读功能
  18. 【AWK】awk 基础用法和应用
  19. OpenGL光和材质
  20. Kotlin学习——了解Kotlin

热门文章

  1. php项目中使用element.ui和vue
  2. 图的遍历、最小生成树、最短路径
  3. MVC 之 属性详解
  4. 编辑距离及编辑距离算法
  5. Swift实战-小QQ(第2章):QQ侧滑菜单
  6. jenkins sonar-scanner 安装测试
  7. 文献学习(part72)--Learning the parts of objects by non-negative matrix factorization
  8. sklearn自学指南(part28)--双向聚类
  9. XGBoost算法概述
  10. 微型计算机不属于串行接口,在微型计算机中,不属于串行接口的是