Koa2 socket.io教程 koa-socket实现智能机器人、聊天室、分组聊天室


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。


Koa2中使用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