koa2第一次上手socket.io遇到的问题总结与分享

前言

本人用周末时间决定用socket作一个客服聊天功能(用户能够直接发消息,客服能够收到全部人发的消息以及回复),但在开发过程当中遇到了一些问题,特此总结javascript

koa2如何使用socket.io

在socket.io官网咱们会发现只有express的示例,然而在koa2中使用方式好像和express的代码有些许不一样前端

咱们打开koa2项目中的app.jsjava

编写以下代码: express

这里为何要使用8777端口,若是咱们使用3000端口,就会和koa的端口冲突,因此这里除了3000端口,其余端口理论上均可以 若是使用了3000端口就会遇到以下图所示的报错:

到了这里本来觉得要解决了,其实事情并无这么简单,咱们在前端引入socket.io的包,而后打开项目,发现控制台一片红

这里要说一下,若是项目使用了jwt作验证,须要对socket.io这个路径作排除,否则会被jwt挡住,而后接下来就会遇到跨域问题,那么koa2中的跨域如何解决? 咱们能够引入koa2-cors,而后使用中间件的方式去解决跨域问题

const cors = require('koa2-cors');
app.use(cors());
复制代码

到了这里差很少该遇到的问题就遇到的差很少了,前端中咱们能够直接使用socket.emit,socket.on和服务端进行通讯了。跨域

总结

第一次作socket应用,学到了不少东西,刚开始网上搜索的基本都是express相关,最后折腾了下仍是折腾出来了,但愿这篇文章能够帮到之后遇到相似问题的小伙伴!app

相关文章
相关标签/搜索