如何将socket.io与browserify一起使用?
当socket.io安装在节点应用程序中时,它会为这个socket.io脚本创建这个url路径:
/socket.io/socket.io.js
但该文件的真实路径(相对于node_modules dir)需要传递给browserify吗?
是吗。
socket.io的客户端/ socket.io.js
或者
socket.io/lib/client.js
在socket.io-client的文档中,它说“Socket.IO与browserify兼容”。但他们没有说明如何。
答案 0 :(得分:3)
如果您努力使用浏览器作为全局窗口,请使用此代码进行集成:
var io = require('socket.io-client');
window.io = io;
答案 1 :(得分:2)
这是一个最小的客户:
// client.js
var socket = require('socket.io-client')();
socket.on('message', ...);
您可以浏览:
browserify client.js > bundle.js
答案 2 :(得分:0)
路径将完全相同,因为它是服务于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
Abrakadabra!
答案 3 :(得分:0)
导入客户端,然后使用以下命令将其分配给变量:
var client = require('socket.io/lib/client');
然后,您可以拨打client
。