Socket.io连接事件未触发

时间:2015-09-15 17:43:23

标签: node.js socket.io

我是socket.io的初学者,并试图像程序一样制作简单的hello world。看起来我的index.html页面加载并成功连接到服务器,但服务器没有触发“连接”事件。我正在分享我的代码,以便你可以弄清楚我在这里做错了什么。

app.js

var app = require('http');
var io = require('socket.io'), fs = require('fs');

app.createServer(function(req,res){

console.log(req.url);

switch(req.url){
    case '/':
        fs.readFile('./index.html',function(err,data){
            if(err){
                res.end('Error');
                throw err;
            }

            res.writeHead(200,{"Context-type":"text/html"});
            res.write(data);
            res.end();
        });
        break;
    case '/socket.io.js':
        fs.readFile('./socket.io.js',function(err,data){
            if(err){
                res.end('Error');
                throw err;
            }

            res.writeHead(200,{"Context-type":"text/javascript"});
            res.write(data);
            res.end();
        });
}
}).listen(8888);
ios = io.listen(app);
console.log("Listening..");


ios.sockets.on('connection',function(socket){
console.log('connection established.'); //this doesn't show up in CLI
});

的index.html

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>Example</title>
<script src="socket.io.js" type="text/javascript"></script>
<script>
    var socket = io.connect('http://localhost:8888');
</script>
</head>
<body>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

最后我自己弄清楚了。我所要做的就是

server = require('http').createServer()

然后将该服务器传递给socket io的监听器,即

io.listen(server);

我将app = require('http');传递给io.listen(app)

时出错了