Javascript 如何使用socket.io浏览器?
如何将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.jsJavascript 如何使用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-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");代码>。成功了,谢谢。有更好的方法吗?