0

node.jsサーバーをセットアップし、ローカルコンピューターで(localhost経由で)アクセスすることができました。ただし、LAN上の他のコンピュータからはアクセスできません。

サーバーは192.168.1.103で、クライアントは192.168.105です。

WebサーバーにApacheを使用し、ポート8080のチャットサーバーにnode.jsを使用しています。

サーバーを再起動するたびに、異なるエラーが発生するようです。リモートコンピューターから192.168.1.103:8080/socket.ion/socket.io.jsにアクセスできる場合もあれば、サーバーがエラーでクラッシュする場合もあります。

/home/tnewhook/node_modules/socket.io/lib/manager.js:0
(function (exports, require, module, __filename, __dirname) { /*!
^
RangeError: Maximum call stack size exceeded

また

/home/tnewhook/node_modules/socket.io/lib/manager.js:916
match = req.url.substr(0, resource.length);

私がこれまでに見た中で最も奇妙なエラーは

missing resource (GET http://192.168.1.105:8080/socket.io.  error in socket.io.js:1632 

socket.ioが自分自身を呼び出そうとしているのはなぜですか?

4

1 に答える 1

0

クライアント側のソケットiojsを間違えていなければ、ハードコードされたIPがあります。これは、2台のコンピューター間でこれが機能しない理由を説明しています。

これを修正するには、たとえばdotcloud.comなどのサービスプロバイダーにアプリをアップロードするか、WebSocketをサポートする唯一のノードjitsu(限定ベータアクセスのみ)をアップロードします。

または、たとえば、マチンエディック/etc/hosts とサーバーの両方で追加できます

myApp.local 127.0.0.1

とクライアントで

myApp.local 192.168.1.103

たとえば、あるプロジェクトでは、ローカルDNSまたはdotcloudのいずれかを使用して世界に共有していました。

var url = 'http://myapp:8080';
url = 'http://myapp-me.dotcloud.com';
var socket = io.connect(url);
于 2012-08-03T04:56:22.117 に答える