美文网首页
2019-02-18 socket.io 基本学习

2019-02-18 socket.io 基本学习

作者: rub1cky | 来源:发表于2019-02-18 12:03 被阅读0次

    WebSocket是html5新增加的一种通信协议,目前流行的浏览器都支持这个协议,例如 Chrome,Safrie,Firefox,Opera,IE等等,对该协议支持最早的应该是chrome,从chrome12就已经开始支持,现在浏览器基本都支持 CanIUse

    1. 先写一个简单的demo

    先祭出文档, 木的中文的

    server

    const Koa = require('koa')
    let app = new Koa
    const server = require('http').createServer(app.callback())
    const io = require('socket.io')(server)
    const fs = require('fs')
    
    app.use(( ctx) => {
        ctx.type = 'html'
        ctx.body = fs.createReadStream('./test.html')
    })
    io.on('connection', function(socket){
        socket.on('chat message', function(msg){
            console.log(msg)
        });
        setTimeout(() => {
            socket.emit('zpzpzpzpzp', "this is test message")  
        }, 5000)
    });
    server.listen(3001, () => {
        console.log(`listenning at 3001`)
    })
    

    html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <h1>Hello World</h1>
        <script src="https://cdn.bootcss.com/socket.io/2.2.0/socket.io.js"></script>
        <script>
            var io = io()
            setTimeout(function() {
                io.emit('chat message', 'zzzzz')
            }, 3000)
           io.on('zpzpzpzpzp', function(msg) {
                let p = document.createElement('h1')
                p.innerText = msg
                document.querySelector('body').appendChild(p)
            })
        </script>
    </body>
    </html>
    

    3s 后 服务端收到来自客户端的信息,5s 后服务端发布信息,客户端打印到页面上

    2. 如果指定某个id进行发送

    io.sockets.connected[socket.id].emit('zpzpzpzpzp', "this is test message")
    

    相关文章

      网友评论

          本文标题:2019-02-18 socket.io 基本学习

          本文链接:https://www.haomeiwen.com/subject/lwcaeqtx.html