美文网首页
client & server 配置 websocket

client & server 配置 websocket

作者: 小二子SAMA | 来源:发表于2018-07-10 23:38 被阅读0次

    1.快速配置一个nodejs server

    1. 安装 nodejs
    2. 安装express
    npm install -g express
    
    1. 安装express-generator
    npm install -g express-generator
    
    1. 通过express 自动生产nodejs server(这一步自动产生package.json等文件)
    express my-node
    
    1. 安装socket.io
    npm install socket.io
    
    1. 修改 /bin/www文件,加入如下代码
    //创建socket
    var socket = io.listen(server);
    //添加连接监听
    socket.on('connection', function(client){   
        //连接成功则执行下面的监听
        client.on('message',function(event){ 
        console.log('Received message from client!',event);
        socket.emit('news', Date.now())
        });
        //断开连接callback
        client.on('disconnect',function(){
            console.log('Server has disconnected');
        });
    });
    
    1. 通过 npm start 运行服务端
    1. 配置client
      编写一个新的页面,点击发送按钮既可以看到通信开始(不存在同源限制)。
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8" />
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <title>Page Title</title>
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js"></script>
    </head>
    <body>
      <button id="test">发送</button>
    </body>
    <script>
      var socket = io.connect('http://localhost:3000');
      document.getElementById("test").onclick = handleClick;
      function handleClick() {
        socket.emit('message', Date.now());
      }
      
      socket.on('news', function (data) {
        setTimeout(()=>{
          console.log(data);
          socket.emit('message', { my: data });
        }, 500);
      });
    
    </script>
    </html>
    

    在 React ES6语法中引入socket.io(先执行 npm install socket.io)

    import io from 'socket.io-client';
    const socket = io.connect('http://localhost:3000');
    

    相关文章

      网友评论

          本文标题:client & server 配置 websocket

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