我有以下服务器端代码:
        var express = require('express')
          , http    = require('http')
          , routes  = require('./routes')
          , io      = require('socket.io')
          , factory = require('./serverfactory.js');
          var  app  = express();
          var server = app.listen(3000);
          io = io.listen(server);
          io.sockets.on('connection',function(socket){
            console.log('new user');
            socket.emit('hail','mysimplemsg');
            socket.on('customevent',function(msg){
                console.log(msg);       
            });
          });
        //var app = module.exports = express.createServer();
        // Configuration
        app.configure(function(){
          app.set('views', __dirname + '/views');
          app.set('view engine', 'jade');
          app.use(express.bodyParser());
          app.use(express.methodOverride());
          app.use(app.router);
          app.use(express.static(__dirname + '/public'));
        });
        app.configure('development', function(){
          app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
        });
        app.configure('production', function(){
          app.use(express.errorHandler());
        });
        // Routes
        app.get('/', routes.index);
这是客户端:
    var socket = io.connect('http://localhost:3000');
    socket.emit('customevent','work');
    socket.on('hail',function(msg){
        console.log(msg);
    });
我期待我的git console输出new user(它会)然后它应该输出work(它不会)然后我在我的浏览器控制台中得到一个味精mysimplemsg(它没有)。
为什么不调用服务器端customevent的事件以及为什么不调用客户端的事件hail是怎么回事?