Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 冲突dojo.require和Socket.io客户端_Javascript_Node.js_Dojo_Socket.io - Fatal编程技术网

Javascript 冲突dojo.require和Socket.io客户端

Javascript 冲突dojo.require和Socket.io客户端,javascript,node.js,dojo,socket.io,Javascript,Node.js,Dojo,Socket.io,我使用dojo 1.8.6和socket.io 0.9.16,在加载socket.io.js客户端后,dojo.require冲突发生,无法加载更多的dojo模块 require(['socket.io/socket.io'])导致错误 TypeError:无法读取未定义的属性“push” 由于某种原因,我不能使用“dojox/socket” 有人知道吗?require语句必须是有效的AMD mid(模块标识符) 通常,人们会将包添加到他们的配置中,例如: var dojoConfig = {

我使用
dojo 1.8.6
socket.io 0.9.16
,在加载
socket.io.js客户端
后,
dojo.require
冲突发生,无法加载更多的dojo模块

require(['socket.io/socket.io'])
导致错误

TypeError:无法读取未定义的属性“push”

由于某种原因,我不能使用“dojox/socket”


有人知道吗?

require语句必须是有效的AMD mid(模块标识符)

通常,人们会将包添加到他们的配置中,例如:

var dojoConfig = {
    packages: [
        {name: 'socketio', location: 'path/to/socket.io/socket.io'}
    ]
}
然后要求:

require(['socketio'], function (socketio) {
    // do something with socketio
});

至于为什么不能使用dojox/socket,我看不到任何代码可供评论。您可能还想签出,这是dojox/socket的一个替代品草案。

从dojo 1.11开始,以下各项工作正常:

packages: [
    "dojo",
    {name: "socketio", location: "/socket.io", main: "socket.io"}
]
模块加载时:

define([
    "socketio"
], function (socketio) { 
    var socket = socketio();
});
我假设它在以前的版本中也能工作,但我还没有测试过它

或者,您可以直接参考socket.io模块,因为它符合AMD标准

define([
    "/socket.io/socket.io.js"
], function (socketio) { 
    var socket = socketio();
});

不幸的是,构建器仍然报告311错误(缺少依赖项),因此没有破坏构建。无法解决此问题,因为没有package.js将其标记为仅复制

我在github上添加了新项目[link],你能编辑这些代码吗,tnx。我尝试通过
dojox/socket
连接到
node.js
服务器,但是这个模块只接受
ws://
wss://
,但是我的服务器运行在http上,我知道这很奇怪。我真的想使用socketio。