带有节点js示例的套接字

时间:2011-03-30 06:41:39

标签: node.js socket.io

大家好我有问题....

客户端代码

 <html>
    <body onload="fun()">
    <script src="C:\cygwin\usr\local\lib\node\.npm\socket.io\0.6.16\package\support\socket.io-client\socket.io.js"></script> 
    <script> 

    function fun()
    {
     alert("hello")   
     var socket = new io.Socket('localhost',{'port':8090});

    socket.on('connect', function(){ 
      socket.send('hi!'); 
    }) 

     socket.on('connect', function(){ console.log('connected to server');socket.send('hi there, this is a test message'); })


    socket.on('message', function(data){ 
      alert(data);
    })
    socket.on('disconnect', function(){}) 
    }
    </script> 
    </body>
    </html>

服务器端代码:

var http = require('http'),  
    io = require('socket.io'), // for npm, otherwise use require('./path/to/socket.io') 

server = http.createServer(function(req, res){ 
 // your normal server code 
 res.writeHead(200, {'Content-Type': 'text/html'}); 
 res.end('<h1>Hello world</h1>'); 
});
server.listen(8090);

// socket.io 
var socket = io.listen(server); 
socket.on('connection', function(client){ 
  // new client is here! 
  client.on('message', function(){ console.log('message arrive'); }) 

  client.on('disconnect', function(){ console.log('connection closed');})

});

从socket.io发现这个例子...... 当我运行服务器时,它给我Socket io准备就绪......接受连接 当我运行浏览器时,它不显示anthing,而且还在firfox firebug控制台上PLZ帮我解决这个问题......

1 个答案:

答案 0 :(得分:6)

您永远不会在客户端调用socket.connect(),因此套接字永远不会尝试连接到服务器。请检查以下代码:

客户端 - &gt;

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script src="socket.io.js"></script> 
<script> 

function fun()
{
    var socket = new io.Socket('localhost',{'port':8090});

    socket.connect();

    socket.on('connect', function(){
        console.log('connected');
        socket.send('hi!'); 
    });


    socket.on('message', function(data){ 
        console.log('message recived: ' + data);
    });

    socket.on('disconnect', function(){
        console.log('disconected');
    });
}

$(document).ready(function() {
    fun();
});
</script> 
</head>
<body>
</body>
</html>

服务器端 - &gt;

var http = require('http'),  
    io = require('socket.io'), // for npm, otherwise use require('./path/to/socket.io') 

server = http.createServer(function(req, res){ 
    // your normal server code 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.end('<h1>Hello world</h1>'); 
});
server.listen(8090);

// socket.io 
var socket = io.listen(server); 
socket.on('connection', function(client){ 
    // new client is here! 
    client.on('message', function(){ 
        console.log('message arrive');
        client.send('some message');
    });

    client.on('disconnect', function(){
        console.log('connection closed');
    });

});