好像只在windows系统出现,我用的win7 ,
https://github.com/Automattic/engine.io-client/issues/376
这里说可以升级 ws,可是这个ws到底是什么呢?是websocket么? 但是如何升级websocket呢?
这种大段大段的错误以我个人经验来说不是环境问题,是包的兼容性问题。 node 0.10->0.11/0.12后v8的api有变动,所以一些涉及v8开发的包不作修改基本都是跪的节奏,有两种方法:
- node降级到0.10.* 试验下安装
- 等作者更新
本着帮人帮到底的精神,我刚去看了下socket.io的仓库,近几天有更新,我试了试npm install https://github.com/Automattic/socket.io,原本以为一切都妥了的时候。。。。然而并没什么卵用,还是报错了,不过不是编译错误, Callback called more than once. 我。。。没见过,无能为力
遇到同样的问题,engine.io-client中ws模块编译错误,仔细看了一下github上engine.io-client的package.json中ws的版本(0.7.2)和npm install socket.io 的版本(0.4.31)是不一致的,确实是ws版本太低,不明白为什么会win7上npm install最新的源出现该问题......
解决方法:在你的工程中将原先ws@0.4.31替换成最新的(engine.io-client的package.json中本身就要求0.7.2),亲测,替换后socket.io server和client都正常
@myylife 看报错的信息socket.io->socket.io-client->engine.io-client->ws,npm install socket.io时socket.io最新版本为1.3.5,对应的socket.io-client也是1.3.5,engine.io-client为1.5.1,接下去问题就来了,win7 npm install时engine.io-client下的package.json中的ws是0.4.31,而github上engine.io-client下的package.json中的ws是0.7.2,应该是依据github上的才是对的,所以win7 npm install时依赖错了,手动修正一下问题就解决了,置于win7下为什么出现这种错误,不清楚