WebSocket

WebSocket,它是HTML5的新API。WebSocket连接本质上就是建立一个TCP连接,WebSocket会通过HTTP请求建立,建立后的WebSocket会在客户端和服务端建立一个持久的连接,直到有一方主动关闭该连接。

socket.io提供了基于事件的实时双向(工)通讯,它同时提供了服务端和客户端的API

运用场景
1、实时分析:将数据推送到客户端,客户端表现为实时计数器、图表、日志客户。
2、实时通讯:聊天应用
3、二进制流传输:socket.io支持任何形式的二进制文件传输,例如图片、视频、音频等。
4、文档合并:允许多个用户同时编辑一个文档,并能够看到每个用户做出的修改

第一步: 下载依赖

npm install -D koa koa-static socket.io

第二步:创建应用程序及挂载静态资源处理中间件

const Koa = require('koa');
const koaStatic = require('koa-static');
const app = new Koa();

app.use(koaStatic('./static'));

第三步:将应用程序服务于socket.io连接

app.callback(): 返回适用于 http.createServer() 方法的回调函数来处理请求
http.Server: http.Server 类

const server = require('http').Server(app.callback());
server.listen(3000, () => {console.log(1)})

// 连接
const io = require('socket.io')(server);

第四步:io监听连接连接状态
监听连接,返回的回调函数中接收socket的实例

// 监听连接
io.on('connect', (socket) => {
    console.log('连接');
    // 监听信号(xinhao)
    socket.on('xinhao', (msg) => {
        console.log(msg);
        // 回复信号
        socket.emit('xinhao2', '第二个信号');
    });
});

客户端

let socket = io();
// 发送信号: 信号标识符   信息
socket.emit('xinhao','这是第一个信号');
// 监听信号,xihao2, 回调函数里:接收: 信息
socket.on('xinhao2', (msg) => {
    let p = document.createElement('p');
    p.innerHTML = msg;
    content.appendChild(p);
});

你可能感兴趣的:(WebSocket)