V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ren2881971
V2EX  ›  Node.js

nodejs 新手咨询下 express4 + socket.io 的问题~

  •  
  •   ren2881971 · 2015-10-29 22:08:25 +08:00 · 4117 次点击
    这是一个创建于 3318 天前的主题,其中的信息可能已经有所发展或是发生改变。
    express4 集成 socket.io 搞个聊天室 自己无聊玩玩~

    有一个疑问希望大神有空的时候解答下~

    我用 npm install socket.io 看到 node_modules 已经有 socket.io 的文件夹可以理解为已经安装好了。

    那我客户端的代码 <script src = "/socket.io/socket.io.js"></script>
    这个是怎么引用到 socket client 的代码的呢~ 没见有 /socket.io/socket.io.js 这个文件啊~~
    14 条回复    2015-11-04 23:05:53 +08:00
    chairuosen
        1
    chairuosen  
       2015-10-29 22:12:27 +08:00
    onevcat
        2
    onevcat  
       2015-10-29 22:18:28 +08:00
    - -.....你当是前端么
    Twinkle
        3
    Twinkle  
       2015-10-29 22:25:39 +08:00
    https://github.com/socketio/socket.io
    和 express 一起的用法已经写得比较清楚了
    LancerComet
        4
    LancerComet  
       2015-10-29 22:26:01 +08:00
    Socket.io 增加了一个路由去引用这个文件
    ren2881971
        5
    ren2881971  
    OP
       2015-10-29 22:28:29 +08:00
    @chairuosen 官网挂了。。 我说怎么看的好好的突然不好使了 还以为被墙了。。
    hr6r
        6
    hr6r  
       2015-10-29 22:29:52 +08:00
    一般来说可以自己 cdn 这个文件
    ren2881971
        7
    ren2881971  
    OP
       2015-10-29 22:31:12 +08:00
    @LancerComet 3q 那我明白了~
    @Twinkle 额。。 之前一直看官网来着。
    ren2881971
        8
    ren2881971  
    OP
       2015-10-29 22:31:33 +08:00
    @hr6r 只要版本对应好 应该没问题吧
    ren2881971
        9
    ren2881971  
    OP
       2015-10-29 22:31:55 +08:00
    @onevcat 猫神!!! 居然惊现这个节点~
    SPACELAN
        10
    SPACELAN  
       2015-10-29 22:45:10 +08:00
    npm 装的都是服务器端的代码吧。。要浏览器用,自己下一个浏览器版本然后扔 public 目录里。。。
    tomwan
        11
    tomwan  
       2015-10-29 23:44:46 +08:00
    ```
    // node_modules/socket.io/lib/index.js
    // nodejs add this route in its codes
    Server.prototype.attachServe = function(srv){
    debug('attaching client serving req handler');
    var url = this._path + '/socket.io.js';
    var evs = srv.listeners('request').slice(0);
    var self = this;
    srv.removeAllListeners('request');
    srv.on('request', function(req, res) {
    if (0 == req.url.indexOf(url)) {
    self.serve(req, res);
    } else {
    for (var i = 0; i < evs.length; i++) {
    evs[i].call(srv, req, res);
    }
    }
    });
    };
    ```
    zhangxiaoman
        12
    zhangxiaoman  
       2015-10-30 09:31:14 +08:00
    问题很简单..
    贴个很久很久前捣鼓 socket.io 的 demo
    index.html:


    node_modules:






    socket.io version :

    {
    "name": "socket.io",
    "version": "1.3.6",
    "description": "node.js realtime framework server",
    }
    geek123
        13
    geek123  
       2015-11-04 16:33:19 +08:00
    你可以看看这篇, http://www.v2ex.com/t/233148#reply1
    ren2881971
        14
    ren2881971  
    OP
       2015-11-04 23:05:53 +08:00
    @geek123 感谢回复。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2662 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:49 · PVG 23:49 · LAX 07:49 · JFK 10:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.