如何在Windows 7 x64(node.js)上安装socket.io

Windows 7家庭高级版64位上运行

下载:

  • node.js(0.8.7-x64)作为从官方网站的Windows MSI
  • make-3.81来自http://gnuwin32.sourceforge.net/packages/make.htm (完整的包,除了源码)
  • Microsoft Visual Studio 2012 Express for web

然后按照http://blog.nowjs.com/running-nowjs-natively-on-windows上的步骤进行操作,这意味着:

  • 安装Microsoft Visual C ++运行时(我得到了x64版本)
  • 从github.com/Flotype/now/zipball/windows获取“fixed-for-windows”版本的now.js

将所有东西都设置好后,运行任何需要“now”模块的例子都会产生一个socket.io模块的请求。

运行'npm install socket.io -g'输出:

C:\Windows\System32>npm install socket.io -g npm http GET https://registry.npmjs.org/socket.io npm http 304 https://registry.npmjs.org/socket.io npm http GET https://registry.npmjs.org/policyfile/0.0.4 npm http GET https://registry.npmjs.org/socket.io-client/0.9.10 npm http GET https://registry.npmjs.org/redis/0.7.2 npm http 304 https://registry.npmjs.org/policyfile/0.0.4 npm http 304 https://registry.npmjs.org/socket.io-client/0.9.10 npm http 304 https://registry.npmjs.org/redis/0.7.2 npm http GET https://registry.npmjs.org/hiredis npm http GET https://registry.npmjs.org/uglify-js/1.2.5 npm http GET https://registry.npmjs.org/xmlhttprequest/1.4.2 npm http GET https://registry.npmjs.org/ws npm http GET https://registry.npmjs.org/active-x-obfuscator/0.0.1 npm http 304 https://registry.npmjs.org/hiredis npm WARN package.json hiredis@0.1.14 No README.md file found! > hiredis@0.1.14 preinstall C:\Program Files\nodejs\node_modules\socket.io\node_ modules\redis\node_modules\hiredis > make || gmake cd deps/hiredis && make static process_begin: CreateProcess(NULL, sh -c "type cc >/dev/null 2>/dev/null && echo cc || echo gcc", ...) failed. process_begin: CreateProcess(NULL, sh -c "uname -s 2>/dev/null || echo not", ... ) failed. make[1]: Entering directory `C:/Program Files/nodejs/node_modules/socket.io/node _modules/redis/node_modules/hiredis/deps/hiredis' std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c 'std' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes. make[1]: [net.o] Error 1 (ignored) std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb hiredis.c 'std' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes. make[1]: [hiredis.o] Error 1 (ignored) std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb sds.c 'std' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes. make[1]: [sds.o] Error 1 (ignored) std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb async.c 'std' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes. make[1]: [async.o] Error 1 (ignored) ar rcs libhiredis.a net.o hiredis.o sds.o async.o process_begin: CreateProcess(NULL, ar rcs libhiredis.a net.o hiredis.o sds.o asy nc.o, ...) failed. make (e=2): O sistema não pode encontrar o arquivo especificado. make[1]: *** [libhiredis.a] Error 2 make[1]: Leaving directory `C:/Program Files/nodejs/node_modules/socket.io/node_ modules/redis/node_modules/hiredis/deps/hiredis' make: *** [all] Error 2 'gmake' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes. npm WARN optional dep failed, continuing hiredis@0.1.14 npm http 304 https://registry.npmjs.org/uglify-js/1.2.5 npm http 304 https://registry.npmjs.org/xmlhttprequest/1.4.2 npm http 304 https://registry.npmjs.org/active-x-obfuscator/0.0.1 npm http 304 https://registry.npmjs.org/ws npm http GET https://registry.npmjs.org/zeparser/0.0.5 npm http GET https://registry.npmjs.org/commander npm http GET https://registry.npmjs.org/tinycolor npm http GET https://registry.npmjs.org/options npm http 304 https://registry.npmjs.org/zeparser/0.0.5 npm http 304 https://registry.npmjs.org/commander npm http 304 https://registry.npmjs.org/tinycolor npm http 304 https://registry.npmjs.org/options > ws@0.4.21 install C:\Program Files\nodejs\node_modules\socket.io\node_modules\ socket.io-client\node_modules\ws > node install.js [ws v0.4.21] Attempting to compile blazing fast native extensions. [ws v0.4.21] Native code compile failed (but the module will still work): [ws v0.4.21] The native extensions are faster, but not required. [ws v0.4.21] On Windows, native extensions require Visual Studio and Python. [ws v0.4.21] On Unix, native extensions require Python, make and a C++ compiler. [ws v0.4.21] Start npm with --ws:verbose to show compilation output (if any). socket.io@0.9.10 C:\Program Files\nodejs\node_modules\socket.io +-- policyfile@0.0.4 +-- redis@0.7.2 +-- socket.io-client@0.9.10 (xmlhttprequest@1.4.2, uglify-js@1.2.5, active-x-obf uscator@0.0.1, ws@0.4.21) 

我错过了什么吗? 也尝试了node.js的版本0.8.6-x64和0.8.5-x64,两者都打包为msi。

另外,将fixed-for-windows版本的now.js直接放置在node_modules文件夹中,并使用helloworld_server.js示例并运行“node helloworld_server.js”:

 [Error: no errorc:\xampp\htdocs\node-tcg\node_modules\now\bin\proxy.node] Error: no errorc:\xampp\htdocs\node-tcg\node_modules\now\bin\proxy.node at Object.Module._extensions..node (module.js:485:11) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:362:17) at require (module.js:378:17) at Object.<anonymous> (c:\xampp\htdocs\node-tcg\node_modules\now\lib\proxy.j s:10:13) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) 

任何在google上发现这个问题的人:我正在运行Windows 8 x64,并且由于编译器问题而试图将socket.io和其他扩展程序安装到node.js中。

我尝试下载/安装GNU Make,Visual Studio Express,Visual Studio Ultimate(试用版):基本上都是推荐的。 还没有骰子。 Socket.io不会工作。

对我来说最简单的解决方案就是在虚拟机中运行linux并使用它。 – 下载x86版本的Lubuntu Linux(非常类似于windows): http : //lubuntu.net/ – 在VirtualBox中安装Linux: https : //www.virtualbox.org/ – 在VirtualBox的网络设置中使用“桥接适配器” Lubuntu。 这将允许您从Windows机器访问节点服务器。 – 安装节点和其他任何你想要的Lubuntu。 Node最初是为Linux设计的,所以一切都完美无瑕。 – 最后安装一些额外的东西只需要4GB的硬盘。 一点也不差!