npm install socket.io 错误该如何解决? 好像需要升级ws,如何升级呢?
发布于 9 年前 作者 myylife 7737 次浏览 最后一次编辑是 8 年前 来自 问答

好像只在windows系统出现,我用的win7 ,

https://github.com/Automattic/engine.io-client/issues/376

这里说可以升级 ws,可是这个ws到底是什么呢?是websocket么? 但是如何升级websocket呢?

14 回复

wswebsocket的一个库. 在Windows下会有各种编译错误. 请尽量使用LinuxMac

@meteormatt 之前好像可以的,现在不行了

@myylife 需要看debug.log的. 一般是编译环境的问题. 比如VS版本之类的.

在vs的开发人员命令行工具下安装

@dayuoba 也是不成功

这种大段大段的错误以我个人经验来说不是环境问题,是包的兼容性问题。 node 0.10->0.11/0.12后v8的api有变动,所以一些涉及v8开发的包不作修改基本都是跪的节奏,有两种方法:

  1. node降级到0.10.* 试验下安装
  2. 等作者更新

本着帮人帮到底的精神,我刚去看了下socket.io的仓库,近几天有更新,我试了试npm install https://github.com/Automattic/socket.io,原本以为一切都妥了的时候。。。。然而并没什么卵用,还是报错了,不过不是编译错误, Callback called more than once. 我。。。没见过,无能为力

@nekron 你用的0.10.*,在windows vs 2013下?

遇到同样的问题,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 我是0.12的环境,我只是推荐你使用0.10看看是不是就ok了,因为这些语法错误我感觉是因为v8的api改动导致的

@jinxc 没有设置ws啊,直接npm install socket.io报错的:(

@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下为什么出现这种错误,不清楚

@jinxc 安装socket.io为何要做那么多编译呢?

socket.io不是有内存泄露吗? 最新版本解决了吗?

@yakczh npm install都不成功,暂时不管泄露

回到顶部