详解如何使用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就可以实现最简单的聊天了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。