title: How to install socket.io on windows 7 x64 (node.js)
body: <p>Running on a Windows 7 Home Premium 64-bits</p>
  
  <p>Downloaded:</p>
  
  <ul>
  <li>node.js (0.8.7-x64) as a windows msi from the official site</li>
  <li>make-3.81 from <a href="http://gnuwin32.sourceforge.net/packages/make.htm" rel="nofollow">http://gnuwin32.sourceforge.net/packages/make.htm</a> (Complete package, except sources)</li>
  <li>Microsoft visual Studio 2012 Express for web</li>
  </ul>
  
  <p>And then followed the steps at <a href="http://blog.nowjs.com/running-nowjs-natively-on-windows" rel="nofollow">http://blog.nowjs.com/running-nowjs-natively-on-windows</a>, which implied on:</p>
  
  <ul>
  <li>installing the Microsoft Visual C++ Runtime (I got the x64 version)</li>
  <li>grabbing a 'fixed-for-windows' version of now.js from github.com/Flotype/now/zipball/windows</li>
  </ul>
  
  <p>With everything set in place, running any example that requires the 'now' module results in a request for socket.io module.</p>
  
  <p>Running 'npm install socket.io -g' outputs:</p>
  
  <pre><code>C:\Windows\System32&gt;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!
  
  &gt; hiredis@0.1.14 preinstall C:\Program Files\nodejs\node_modules\socket.io\node_
  modules\redis\node_modules\hiredis
  &gt; make || gmake
  
  cd deps/hiredis &amp;&amp; make static
  process_begin: CreateProcess(NULL, sh -c "type cc &gt;/dev/null 2&gt;/dev/null &amp;&amp; echo
   cc || echo gcc", ...) failed.
  process_begin: CreateProcess(NULL, sh -c "uname -s 2&gt;/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
  
  &gt; ws@0.4.21 install C:\Program Files\nodejs\node_modules\socket.io\node_modules\
  socket.io-client\node_modules\ws
  &gt; 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)
  </code></pre>
  
  <p>Am I missing something? Also tried with versions 0.8.6-x64 and 0.8.5-x64 of node.js, both also packaged as msi.</p>
  
  <p>Additionally, placing the fixed-for-windows version of now.js directly in a node_modules folder insite the helloworld_server.js example and running 'node helloworld_server.js' produces:</p>
  
  <pre><code>[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.&lt;anonymous&gt; (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)
  </code></pre>