Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用socket.io浏览器?_Javascript_Node.js_Socket.io_Browserify - Fatal编程技术网

Javascript 如何使用socket.io浏览器?

Javascript 如何使用socket.io浏览器?,javascript,node.js,socket.io,browserify,Javascript,Node.js,Socket.io,Browserify,如何将socket.io与browserify一起使用 当socket.io安装在节点应用程序中时,它会为socket.io脚本创建以下url路径: /socket.io/socket.io.js 但是,需要传递给browserify的文件(相对于node_modules dir)的实际路径是什么 是例如 socket.io-client/socket.io.js 或许 socket.io/lib/client.js 在socket.io-client的文档中,它说“socket.io与brow

如何将socket.io与browserify一起使用

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

/socket.io/socket.io.js

但是,需要传递给browserify的文件(相对于node_modules dir)的实际路径是什么

是例如

socket.io-client/socket.io.js

或许

socket.io/lib/client.js


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

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

但我使用了一个更方便的解决方案:看看这个

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

阿布拉卡达布拉

导入客户端,然后使用以下命令将其分配给变量:

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

然后,您可以调用
客户端

这是一个最小的客户端:

// client.js
var socket = require('socket.io-client')();
socket.on('message', ...);
您可以浏览以下内容:

browserify client.js > bundle.js

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

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

这是coffeescript,但我想你将不难将其翻译成JS。“路径将完全相同,因为…”很抱歉我不知道,但与什么完全相同?就像你没有使用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客户端
包含到您的捆绑包中吗?为什么不在客户端代码上方要求它呢?为了让它正常工作,我需要传递URL和端口,即
var socket=require('socket.io client')(“http://localhost:8080");。成功了,谢谢。有更好的方法吗?