ps:以下仅记录个人经验,有些表述可能不够严谨。
最近在学习vue,用socket实现一个聊天项目,前端用的vue,后台用的node。然后出现了一个难解的bug:前端emit的数据,后台on函数怎么也接收不到,无法触发on函数里的回调函数。
找bug找了三天,给我整抑郁了,一直觉得是自己的代码有问题,浏览器的F12调试找不出原因, 终端也没提示报错信息,加断点也没效果,最后一想是不是库的版本有问题,果然就是!
一搜索,发现一篇博客(博客地址)的博主有着类似问题,这个博主是用python做后台的。然后我更加坚定自己的观念,卸载了socket.io-client重新安装,最后发现果然是socket.io-client库版本太高了,我之前是4.0.0,降级为2.3.0后,问题解决了!
相关知识:
socket.io是用在服务端的库,简单地理解就是用在后端项目的;
socket.io-client是用在客户端的,简单地理解就是用在前端项目的。
socket.io和socket.io-client可兼容的版本:
socket.io 2.3.0
socket.io-client 2.3.0
ps:自己已安装的库的版本可以在项目目录的package.json文件里查看: