详解如何使用koa实现socket.io官网的例子
socket.io官网中使用express实现了一个最简单的IM即时聊天,今天我们使用koa来实现一下
###框架准备
1.确保你本地已经安装好了nodejs和npm,使用koa要求node版本>7.6
2.在你需要的位置新建一个文件夹(官网的简单命名为chat-example)
3.进入项目目录,创建package.json文件:
{ "name":"socket-chat-example", "version":"0.0.1", "description":"myfirstsocket.ioapp", "dependencies":{} }
4.命令行中使用npm安装,执行以下命令
npminstall--savekoakoa-routerhttpfssocket.io
###接下来直接上代码
项目目录下直接新建index.js
varKoa=require('koa'); varapp=newKoa(); constRouter=require('koa-router'); constfs=require('fs'); constserver=require('http').createServer(app.callback()); constio=require('socket.io')(server); //首页路由 letrouter=newRouter(); router.get('/',ctx=>{ ctx.response.type='html'; ctx.response.body=fs.createReadStream('./index.html'); }); app.use(router.routes()); //socket连接 io.on('connection',(socket)=>{ socket.on('chatmessage',(msg)=>{ console.log('message:'+msg); io.emit('chatmessage',msg); }); socket.on('disconnect',()=>{ console.log('userdisconnected'); }); }); //监听端口 server.listen(3000,()=>{ console.log('listeningon*:3000'); });
重点:
socket的连接方式是先建立server,它的获取方式不再是:
varhttp=require('http').Server(app); vario=require('socket.io')(http);
而变成了:
constserver=require('http').createServer(app.callback()); constio=require('socket.io')(server);
node8之后,function(){}可以简化为()=>{},写法上更加的简洁
页面index.html
Socket.IOchat
index.html和官网的一样,不做任何改动
最后执行nodeindex.js,打开浏览器,输入http://localhost:3000就可以实现最简单的聊天了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。