• socket.io快速入门


    客户端:index.html

    <!-- 引入远程socket.io.js -->
    <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.1/socket.io.js"></script> -->
    
    <!-- 官方例子写法 -->
    <!-- <script src="/socket.io/socket.io.js"></script> -->
    <!-- 需要改成以下写法 -->
    <script src="http://localhost:8888/socket.io/socket.io.js"></script>
    
    <script>
    
      //创建socket
      var socket = io('http://localhost:8888');
    
      /* 
        创建自定义事件 'news'
        作用:接受服务端 socket.emit('news', 数据); 发出的数据
      */
      socket.on('news', function (data) {
    
        //输出服务端响应了数据
        console.log(data);
    
        //向服务端的自定义事件 'my other event' 发出数据
        socket.emit('my other event', { my: 'data' });
      });
    </script>

    服务端:server.js [node.js]

    var app = require('http').createServer(handler)
    var io = require('socket.io')(app); 
    var fs = require('fs');
    
    app.listen(8888);
    
    
    //URL请求处理
    /*
    服务器web请求处理器
    作用: 当客户端请localhost:8888时,打开默认页面 /index.html
    */
    function handler (req, res) {
      //打开默认页面
      fs.readFile(__dirname + '/index.html',
      
      //响应处理方法
      function (err, data) {
    
        //情况1:如果 err 不为空,那么表示没有找到 /index.html
        if (err) {
          res.writeHead(500);
          return res.end('Error loading index.html');
        }
    
        //情况2:找到了 /index.html
        res.writeHead(200);
        res.end(data);
      });
    }
    
    
    // socket请求处理
    io.on('connection', function (socket) {
    
      // 向客户端的自定义事件'news'发送数据
      socket.emit('news', { hello: 'world' });
      
      // 创建自定义事件 my other event
      socket.on('my other event', function (data) {
        console.log(data);
      });
    });
  • 相关阅读:
    多线程编程核心技术(五)死锁
    SELinux详细配置
    Linux实现RAID
    iSCSi的基本配置
    文本超出省略号之前后省略号实现
    对象冻结
    条件判断的优美写法
    使用VConsole
    重绘和重排(回流)
    移动端rem布局
  • 原文地址:https://www.cnblogs.com/zhou195/p/8994813.html
Copyright © 2020-2023  润新知