2016-12-17 10 views
0

したがって、基本的に私はポート1900でApacheによって実行されているWebページを持っていて、ポート3000でNodeJSサーバーを実行しています。 Serverコード:apacheからNodeJSサーバーに接続するページ

var socket = io('192.168.0.105:3000');サーバー(私のラップトップ)とApacheを実行するコンピュータからページをロードするときにNodeJSサーバーに接続します。

var express = require('express'); 
var http = require('http'); 
//make sure you keep this order 
var app = express(); 
var server = http.createServer(app); 
var io = require('socket.io').listen(server); 
var port = 3000; 
server.listen(port, '192.168.0.105', function(){ 
    console.log('Server started: listening on port '+port+'.'); 
}); 

WebページAの次のコードを持っています。 問題は、サーバーを実行しているラップトップと同じLANに接続されている別のコンピューター(ラップトップ)からWebページにアクセスしようとすると表示されます。 そのラップトップから192.168.0.105:1900にアクセスすると、ApacheからロードされているNodeJSサーバーに接続されていないページのみが表示されますが、これはいつでも192.168.0.105:3000に接続しようとしますが、1分後に失敗します。

この問題を解決するにはどうすればよいですか? ありがとうございます。

+0

サーバーに接続していないことをどのように確認しますか?あなたはソケットサーバーに接続する際に何かを慰めていません。 – Shaharyar

+0

まず、ラップトップ上のコマンドシェルに行き、 'ping 192.168.0.105'を実行して、他のサーバに到達できるかどうか確認してください。ネットワーク上の問題またはローカルのファイアウォールの問題が考えられます。また、ブラウザのデバッグコンソールで、エラーが報告されているかどうかを確認して、それがさらなる手掛かりを提供しているかどうかを確認する必要があります。 – jfriend00

+0

@Shaharyarをコンソールに接続すると、 '192.168.0.105:3000'に接続しようとしているように見えますが、それは数秒でサーバーに接続するラップトップに比べて永久に読み込まれます。 – southpaw93

答えて

2

問題を解決したので、私のコメントを答えにする。

Windows 7には、デフォルトでパーソナルファイアウォールが組み込まれています。ポート3000への接続を手動で有効にする必要があります。ルータは、おそらくネットワークの外部からアクセスするためのものです。あなたは同じLAN上にいるときにラップトップからアクセスすることを話しているので、組み込みのパーソナルファイアウォールになる可能性が高くなります。

関連する問題