Nodejs基础、Nodejs打在一个类似Express的框架、MongoDb的基础、Nodejs操作Mongodb、Koa2入门实战。从0到1学会Nodejs入门教程
Koajs入门视频教程在线学习地址:https://www.bilibili.com/video/BV1xm4y1c7zr/?p=1
Koajs入门视频教程网盘下载地址:https://pan.baidu.com/s/1QN_XkXRXmIw6V7HevntBQQ 提取码:abcd
有时候我们想让服务器主动给客户端推送消息,或者我们想实现一个聊天室、或者类似京东商城的智能回复机器人,这个时候我们用传统的ajax就没法还行。下面我们看看koa-socket实现智能机器人、聊天室、分组聊天室
Koa2 socket.io视频教程:
https://www.itying.com/goods-1173.html
首先解决第一个问题,如何让服务器主动给客户端推送消息?
们可以非常轻松的捕获浏览器上发生的事件(比如用户点击了盒子),这个事件可以轻松产生与服务器的数据交互(比如Ajax)。但是,反过来却是不可能的:服务器端发生了一个事件,服务器无法将这个事件的信息实时主动通知它的客户端。只有在客户端查询服务器的当前状态的时候,所发生事件的信息才会从服务器传递到客户端。
让服务器主动给客户端推送消息常见的做法有下面几种方式。
● 长轮询:客户端每隔很短的时间,都会对服务器发出请求,查看是否有新的消息,只要轮询速度足够快,例如1秒,就能给人造成交互是实时进行的印象。这种做法是无奈之举,实际上对服务器、客户端双方都造成了大量的性能浪费。
● 长连接:浏览器和服务器只需要要做一个握手的动作,在建立连接之后,双方可以在任意时刻,相互推送信息。同时,服务器与客户端之间交换的头信息很小。
WebSocket是HTML5最新提出的规范,虽然主流浏览器都已经支持,但仍然可能有不兼容的情况,为了兼容所有浏览器,给程序员提供一致的编程体验,SocketIO将WebSocket、AJAX和其它的通信方式全部封装成了统一的通信接口,也就是说,我们在使用SocketIO时,不用担心兼容问题,底层会自动选用最佳的通信方式。因此说,WebSocket是SocketIO的一个子集。
Node.js从诞生之日起,就支持WebSocket协议。不过,从底层一步一步搭建一个Socket服务器很费劲。所以,有大神帮我们写了一个库Socket.IO。
1、在Koa2中安装koa-socket模块
cnpm i -S koa-socket
2、在Koa项目中引入koa-socket
const IO = require( 'koa-socket' )
3、实例化const io = new IO()
4、调用 io.attach( app )
io.attach( app )
5、配置服务端
app._io.on( 'connection', socket => { console.log('建立连接了'); socket.emit('serverEmit','我接收到增加购物车的事件了'); /*发给指定用户*/ app._io.emit('serverEmit','我接收到增加购物车的事件了'); /*广播*/ })
6、客户端使用
完整视频教程:
https://www.itying.com/goods-1173.html