2012-02-25 6 views
0

VPSでnode.js/socket.ioを使いこなしていますが、&の基本送信を受信しようとしています。私はクライアントが接続を切断したときにしか見ることができませんが、これはVPS:websocket writing 5:::{"name":"news","args":[{"hello":"world"}]}にあります。彼らが切断された後、私は単語 "世界"が表示されます。私は間違ったことをやっていますか?彼らはまだ接続している間にその言葉を見てはいけませんか?助けてくれてありがとう。接続が切断されたときにのみ結果が表示されます

私はこのコードを使用しています:

クライアント:

<!doctype html> 
<html> 
<head> 
<title>web sockets</title> 
<meta charset="utf-8"> 
<script src="http://IP-ADDRESS/socket.io/socket.io.js"></script> 
<script> 
var socket = io 

.connect('http://IP-ADDRESS:80'); 
    socket.on('news', function (data) { 
     console.log(data); 
     writeMessage(data); 
     socket.emit('my other event', { my: 'data' }); 
    }); 

    function writeMessage(msg) { 
     var msgArea = document.getElementById("msgArea"); 
     if (typeof msg == "object") { 
      msgArea.innerHTML = msg.hello; 
     } 
     else { 
      msgArea.innerHTML = msg; 
     } 
    } 
    </script> 
    </head> 
    <body> 
    <div id="msgArea"> 
    </div> 
    </body> 
    </html> 

サーバー:

var app = require('http').createServer(handler) 
    , io = require('socket.io').listen(app) 
    , fs = require('fs') 

app.listen(80); 

function handler (req, res) { 
    fs.readFile(__dirname + '/index.html', 
    function (err, data) { 
    if (err) { 
     res.writeHead(500); 
     return res.end('Error loading index.html'); 
    } 

    res.writeHead(200); 
    res.end(data); 
    }); 
} 

io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

答えて

0

年後、私は今、純粋なWebSocketをを使用しています。私は最終的にsocket.ioを手に入れましたが(ここの問題が何であるかは覚えていませんが)、私が望んでいた方法ではうまくいかなかったのです。しかし、WebSocketは素晴らしいです。