ホームネットワークにUbuntu 10.04サーバーをセットアップしました。私はそれにランプサーバー、NodeJsとSocket.ioをインストールしました。それはうまくいくようですが、クライアントからサーバに接続できません。私は、クライアントファイルを格納する場所やIPアドレスとポートをどのようにコードに入れるべきかのポイントを見逃していると思います。NodeJS + Socket.io:クライアントはホームネットワーク内のUbuntuサーバーに接続しません
私はDavid Walsh(http://davidwalsh.name/websocket)の例を使用しています。私のIPアドレスは192.168.1.113です。クライアントに私はapp.js
ノードがWELとしてインストールされている場所であるは/ usr/local/binに
でを格納します。
Serverのコード私がノードを使用してサーバを起動し、ブラウザ(http://192.168.1.113:8000)私が見るにアドレスを入力して「こんにちはソケット恋人!」
// Require HTTP module (to start server) and Socket.IO
var http = require('http'), io = require('socket.io');
// Start the server at port 8000
var server = http.createServer(function(req, res){
// Send HTML headers and message
res.writeHead(200,{ 'Content-Type': 'text/html' });
res.end('<h1>Hello Socket Lover!</h1>');
});
server.listen(8000);
// Create a Socket.IO instance, passing it our server
var socket = io.listen(server);
// Add a connect listener
socket.on('connection', function(client){
// Success! Now listen to messages to be received
client.on('message',function(event){
console.log('Received message from client!',event);
});
client.on('disconnect',function(){
clearInterval(interval);
console.log('Server has disconnected');
});
});
だから私はこれがうまく動作すると思います。
私は私のLAMPサーバーのホームフォルダがどこにあるかである
の/ var/WWW
の私のクライアントファイル(client.html)を格納します。私は、ブラウザでこのファイルを開くとClient.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script src="http://cdn.socket.io/stable/socket.io.js"></script>
<script>
// Create SocketIO instance, connect
var socket = new io.Socket('http://192.168.1.113',{
port: 8000
});
socket.connect();
// Add a connect listener
socket.on('connect',function() {
console.log('Client has connected to the server!');
});
// Add a connect listener
socket.on('message',function(data) {
console.log('Received a message from the server!',data);
});
// Add a disconnect listener
socket.on('disconnect',function() {
console.log('The client has disconnected!');
});
// Sends a message to the server via sockets
function sendMessageToServer(message) {
socket.send(message);
}
</body>
</html>
は今(http://192.168.1.113/client.html)何も起こりません。私は自分のUbuntuサーバーや他のログに接続がないことを確認し、ブラウザにはメッセージがありません。
私は間違っていますか?私は何時間も試みましたが、あらゆる種類のものを変えましたが、結果はまだありません。
は、あなたがそれに接続を行うことができるように、あなたのUbuntuのサーバからのポート8000を開いたことがありますか? – pmavik
ありがとうございます。私はufwを使って開閉口を試しました。ポートを閉じると、「Hello Socket Lovers」というメッセージは表示されません。私は再びそれを開くと、それはポートの問題だとは思わないので、メッセージを表示します。 –
というタグがclient.htmlファイルにありません。私はそれも追加しましたが、結果はありません。 –