Socket.ioで双方向通信のWebアプリを開発中です。
現在、サーバ側からのemitはできるのですが、クライアントからのemitが送信できない状態です。

server.js

var fs = require('fs'),
    socketio = require('socket.io'),
    path = require('path');

var server = require('http').createServer();
server.on('request', doRequest);
server.listen(1234);

var io = socketio.listen(server);
io.sockets.on('connection', function(socket) {

    socket.emit('connect');

    socket.on('msg', function(data) {
        console.log(data);
    });
});

function doRequest(req, res) {
    switch(path.extname(req.url)) {
    case '':
        fs.readFile('./index.html', 'UTF-8',
            function (err, data) {
                res.writeHead(200, {'Content-Type': 'text/html'});
                res.write(data);
                res.end();
            }
        );
        break;
    case '.css':
        fs.readFile('.'+req.url, 'UTF-8',
            function (err, data) {
                res.writeHead(200, {'Content-Type': 'text/css'});
                res.write(data);
                res.end();
            }
        );
        break;
    case '.js':
        fs.readFile('.'+req.url, 'UTF-8',
            function (err, data) {
                res.writeHead(200, {'Content-Type': 'application/javascript'});
                res.write(data);
                res.end();
            }
        );
        break;
    }
}

index.html

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html">
    <meta charset="UTF-8">
    <title>chat</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <script src="/socket.io/socket.io.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>
    var socket = io.connect('http://localhost:1234');

    socket.on('connect', function() {
        socket.emit('msg', 'connect!');
        console.log('connect!');
    });

    function send() {
        var msg = $('#msg').val();
        $('#msg').val('');
        socket.emit('msg', msg);
    }
    </script>
</head>
<body>
    <form>
        <textarea id="msg" rows="4" cols="50"></textarea>
        <button type="button" onclick="send()">送信</button>
    </form>
    <div id="container">
    </div>
</body>
</html>

index.html読み込み時、サーバ側からのemitによってクライアント側の以下のイベントが発火します。

socket.on('connect', function() {
    socket.emit('msg', 'connect!');
    console.log('connect!');
});

Chromeのコンソールには「connect!」と表示されますが、同関数内のsocket.emitは実行されず、サーバ側でlistenしている

socket.on('msg', function(data) {
    console.log(data);
});

こちらのイベントが発火しません。

また、textareaに文字を入力して送信ボタンを押しても、同様にsend()関数のsocket.emit部分のみ実行できていないです。

どうすればよいでしょうか。

Nodeのバージョンはv0.10.25です。よろしくお願いします。