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": "my first socket.io app",
"dependencies": {}
}
4.命令行中使用npm安装,执行以下命令
npm install --save koa koa-router http fs socket.io
项目目录下直接新建index.js
var Koa = require('koa');
var app = new Koa();
const Router = require('koa-router');
const fs = require('fs');
const server = require('http').createServer(app.callback());
const io = require('socket.io')(server);
// 首页路由
let router = new Router();
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('chat message', (msg) => {
console.log('message: '+msg);
io.emit('chat message', msg);
});
socket.on('disconnect', () => {
console.log('user disconnected');
});
});
// 监听端口
server.listen(3000, () => {
console.log('listening on *:3000');
});
重点:
socket的连接方式是先建立server,它的获取方式不再是:
var http = require('http').Server(app);
var io = require('socket.io')(http);
而变成了:
const server = require('http').createServer(app.callback());
const io = require('socket.io')(server);
node8之后,function(){} 可以简化为 () => {},写法上更加的简洁
页面index.html
Socket.IO chat
index.html和官网的一样,不做任何改动
最后执行node index.js,打开浏览器,输入http://localhost:3000就可以实现最简单的聊天了
最后
为了帮助大家让学习变得轻松、高效,给大家免费分享一大批资料,帮助大家在成为全栈工程师,乃至架构师的路上披荆斩棘。在这里给大家推荐一个前端全栈学习交流圈:866109386.欢迎大家进群交流讨论,学习交流,共同进步。
当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。
但最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有有效资源还是很有必要的。
最后祝福所有遇到瓶疾且不知道怎么办的前端程序员们,祝福大家在往后的工作与面试中一切顺利。