koa 2.0.0-alpha.3
socket.io 1.4.5

app.listen(port)せずにapp.callback()すればhttp.Serverに渡せるハンドラが返ってくるとのことだったのでそのようにしたらできた。

import Koa from "koa";
const app = new Koa;

import convert from "koa-convert";
import koaStatic from "koa-static";
app.use(convert(koaStatic("./public")));

import {Server} from "http";
const server = Server(app.callback());

import SocketIO from "socket.io";
const io = SocketIO(server);

import pkg from "../../package.json";
app.name = pkg.name;

import logger from "koa-logger";
app.use(logger());

import router from "./route";
app.use(router.routes());

import Jade from "koa-jade";
new Jade({
app: app,
viewPath: "server/view",
debug: app.env !== "production",
noCache: app.env !== "production",
helperPath: [ ]
});

module.exports = {
app: app,
server: server
};


const server = require("./src/server").server;

const port = process.env.PORT || 3000;
server.listen(port);

あとは io.on(“connection”, (socket) => { }); とかで接続が取れる
クライアント側も普通に /socket.io/socket.io.js ができてる