ExpressとWebsocketを使う

サーバー側でのioオブジェクトの宣言が間違っていたみたいで無駄にハマった。
var ioの宣言はここを参考に
http://net.tutsplus.com/tutorials/javascript-ajax/real-time-chat-with-nodejs-socket-io-and-expressjs/

app.js

var express = require("express");
var app = express();
var io = require("socket.io").listen(app.listen(3000));

//express code                                                                  
app.get("/",function(req,res){
    res.sendfile(__dirname + '/index.html');
});
app.use(express.static(__dirname));

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

index.html

<html>
<head>
  <title>socketmongo</title>
  <meta charset="UTF-8">
  <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.\
min.js"></script>
<script>
    $(function(){
      var socket = io.connect();
      socket.on('news',function(data){
        console.log(data);
        $("#code").text(data["hello"]);
        socket.emit('my other event',{my:'data'});
      });
    });
</script>
</head>
<body>
  <h1>socket.io with MongoDB</h1>
  <div id="code"></div>

</body>
</html>