const Koa = require('koa')
const app = new Koa()
const views = require('koa-views')
const json = require('koa-json')
const onerror = require('koa-onerror')
const bodyparser = require('koa-bodyparser')
const logger = require('koa-logger')
const index = require('./routes/index')
const users = require('./routes/users')
// error handler
onerror(app)
// middlewares
app.use(bodyparser({
enableTypes:['json', 'form', 'text']
}))
app.use(json())
app.use(logger())
app.use(require('koa-static')(__dirname + '/public'))
app.use(views(__dirname + '/views', {
extension: 'pug'
}))
// logger
app.use(async (ctx, next) => {
const start = new Date()
await next()
const ms = new Date() - start
console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
})
// routes
app.use(index.routes(), index.allowedMethods())
app.use(users.routes(), users.allowedMethods())
// error-handling
app.on('error', (err, ctx) => {
console.error('server error', err, ctx)
});
//using websocket
// const server = require('http').createServer(app.callback());
// const io = require('socket.io')(server);
// io.on('connection', client => {
// console.log("有鏈接動做");
// client.on('event', data => { /* … */ });
// client.on('disconnect', () => { /* … */ });
// });
const io = require('socket.io')();
// io.on('connection', client => {
// });
io.of('/self').on('connection', client => {
console.log("服務端檢測到鏈接----") ;
var data_obj={
name:"name",
age:12
}
io.of('/self').emit('server_event',data_obj); // emit an event to all connected sockets
client.on("client_event",function(data){
console.log("client_event");
console.log(data)
})
client.on('disconnect', () => { /* … */ });
});
io.listen(8888);
// server.listen(8888);
module.exports = app
----完----
上述代碼複製粘貼可用。