はじめに
node.js + websocketのアプリでローカルマシンではうまく動くけど、他のマシンから接続した場合に動かない場合は、以下が考えられます。
接続先IPアドレスがlocalhostになっている
以下のようなコードの場合、ローカルマシン以外からアクセスされた場合はwebsokectに接続できないので、localhostの部分をnode.jsが動いているサーバのIPアドレスに変える必要があります。
var socket = io.connect('http://localhost:3000'); socket.on('connect', function(msg) { // hogehoge });
2012.1.17追記
アドレスは0.0.0.0とすると良いそうです。コメント欄にて指摘いただきました。