zoukankan      html  css  js  c++  java
  • nodejs+express+socket.io

    其实官网文档清楚了  https://socket.io/get-started/chat/

    但是因为之前写的是nodejs+express, socket.io是后加的, 还是有小坑

    服务器端:

    官网代码

    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    
    app.get('/', function(req, res){
      res.sendFile(__dirname + '/index.html');
    });
    
    io.on('connection', function(socket){
      console.log('a user connected');
    });
    
    http.listen(3000, function(){
      console.log('listening on *:3000');
    });

    注意这里是http.listen而不是app.listen!

    如果是app.listen  客户端会打开web页面,  但一直报连不上socket.io 404 not found

    2 注意它用的是 app.get('/')

    也可以直接用1行static

    // app.get("/", (req, res) => res.send("Hello World!"));
    
    app.use(express.static(config['PATH_OVERLAY_STATIC']))

    但必须注释掉app.get('/')

    客户端:

    必须用socket.io-client否则会报错.

    注意官网和github用法不同

    https://socket.io/get-started/chat/

    io.on('connection', function(socket){
      socket.on('chat message', function(msg){
        console.log('message: ' + msg);
      });
    });

    github https://github.com/socketio/socket.io-client

    <script src="/socket.io/socket.io.js"></script>
    <script>
      var socket = io('http://localhost');
      socket.on('connect', function(){});
      socket.on('event', function(data){});
      socket.on('disconnect', function(){});
    </script>
    
    // with ES6 import
    
    
    import io from 'socket.io-client';
    
    const socket = io('http://localhost');

    区别是io 似乎不再提供io.on 这样的connect 事件了, 直接只使用

    socket.on('connect', function(){});

    但是现在socket.io-client基本没什么更新了. 先按github的方法用把. 

  • 相关阅读:
    CentOS Grub、BASH 故障、解决方法
    Fail2ban 阻止暴力破解
    Extundelete 数据恢复
    HTTP 状态信息
    LNMP 参数调优 ( 无注释 )
    Mysql 性能优化 ( my.cnf )
    MantisBT 缺陷管理系统
    Zabbix Agent 源码编译安装
    Zabbix 监控 Mysql 状态
    Zabbix 监控 Nginx 状态
  • 原文地址:https://www.cnblogs.com/xuanmanstein/p/10628749.html
Copyright © 2011-2022 走看看