【问题标题】:How to use socket.io browserify?如何使用 socket.io 浏览器化?
【发布时间】:2016-10-21 15:38:02
【问题描述】:

如何在 browserify 中使用 socket.io?

当 socket.io 安装在节点应用程序中时,它会为这个 socket.io 脚本创建这个 url 路径:

/socket.io/socket.io.js

但是需要传递给 browserify 的那个文件的真实路径(相对于 node_modules 目录)是什么?

是不是例如

socket.io-client/socket.io.js

或许

socket.io/lib/client.js

在 socket.io-client 的文档中它说“Socket.IO 与 browserify 兼容”。但他们没有说如何。

【问题讨论】:

    标签: javascript node.js socket.io browserify


    【解决方案1】:

    如果您很难将它与 browserify 一起作为窗口全局使用,请使用以下代码进行集成:

    var io = require('socket.io-client');
    window.io = io;
    

    【讨论】:

    • 它成功了,谢谢。有更好的方法吗?
    【解决方案2】:

    这是一个最小的客户端:

    // client.js
    var socket = require('socket.io-client')();
    socket.on('message', ...);
    

    您可以浏览哪些内容:

    browserify client.js > bundle.js
    

    【讨论】:

    • 为了让它工作,我需要传递 URL 和端口,即var socket = require('socket.io-client')("http://localhost:8080");
    【解决方案3】:

    路径将完全相同,因为它是为 socket.io 客户端库提供服务的服务器(我猜你不是 browserifying 服务器,是吗?)。

    但我使用更方便的解决方案:检查一下。

    io  =   require 'socket.io-client'
    
    class Network
    
        constructor: (game, refresh_infos) ->
    
            @sock = io()
            #...
    
        pending: (name, cb) ->
    
            @name = name
            @sock.emit 'pending', name: name
            @sock.on 'new_game', (data) => cb data
    

    阿布拉卡达布拉!

    【讨论】:

    • 这是coffeescript,但我想你不会很难将它翻译成JS。
    • "路径将完全一样,因为 ..." 抱歉我在这里的无知,但完全一样 what?
    • 就像你没有使用browserify一样。
    • 我不这么认为。但也许我的问题不够具体。我想做的是这样的(简化示例):app.get('/myscript.js', function( req, res) { var jsFiles = ['local/path/node_modules/socket.io-client/lib/index.js', local/path/someother.js]; var b = browserify(jsFiles).bundle(); b.on('error', console.error); b.pipe(res); }); 抱歉,这没有正确格式化代码。
    • Hu 所以你想直接动态地包含socket.io-client 到你的包中?为什么不把它放在你的客户端代码之上呢?
    【解决方案4】:

    导入客户端,然后将其分配给变量:

    var client = require('socket.io/lib/client');
    

    然后您可以拨打client

    【讨论】:

      猜你喜欢
      • 2015-12-27
      • 2018-10-29
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      相关资源
      最近更新 更多