Websocket dojox没有定义

Websocket dojox没有定义,websocket,comet,dojo,Websocket,Comet,Dojo,我试图将COMET与dojo一起使用,但在示例的第一行,它失败了,并显示了以下消息 dojox没有定义 我一定错过了一些显而易见的事情 这是页面(错误在正文的第一行): 需要([“dojox/socket”]); var socket=dojox.socket(“/cometd”); 函数发送(数据){ 返回socket.send(dojo.toJson(data)); } socket.on(“连接”,函数(){ //握手 发送([ { “频道”:“/元/握手”, “版本”:“1.0”, “

我试图将COMET与dojo一起使用,但在示例的第一行,它失败了,并显示了以下消息

dojox没有定义

我一定错过了一些显而易见的事情

这是页面(错误在正文的第一行):


需要([“dojox/socket”]);
var socket=dojox.socket(“/cometd”);
函数发送(数据){
返回socket.send(dojo.toJson(data));
}
socket.on(“连接”,函数(){
//握手
发送([
{
“频道”:“/元/握手”,
“版本”:“1.0”,
“最低版本”:“1.0beta”,
“supportedConnectionTypes”:[“长轮询”]//或x域的[“回调轮询”]
}
] )
socket.on(“消息”,函数(数据){
//等待响应,以便我们可以使用提供的客户端id进行连接
data=dojo.fromJson(数据);
if(data.error){
抛出新错误(Error);
}
//获取所有未来消息的客户端id
clientId=data.clientId;
//发送连接消息
发送([
{
“频道”:“/元/连接”,
“clientId”:clientId,
“connectionType”:“长轮询”
},
{//同时发送订阅消息
“频道”:“/元/订阅”,
“clientId”:clientId,
“订阅”:“/foo/**”
}
] );
socket.on(“消息”,函数(数据){
警报(“来自服务器的消息”+数据)
} );
} );
} );

您正在混合AMD和旧式模块语法。新的AMD样式,
require
不会像旧的
dojo.require
那样为您的命名空间创建全局变量

重写代码以完全使用新的AMD样式,或者删除加载dojo时添加的
async=true
标志以重新启用对旧模块样式的支持

无论如何,用AMD风格重写这个应该不难

require([
    'dojo/_base/json', //_base is for things that used to be in the root dojo namespace.
    'dojox/socket'
],function(
    json,
    dojox_socket
){
    var socket = dojox_socket( "/cometd" );
    function send( data ) {
        return socket.send( json.toJson( data ) );
    }
    // and so on...
}); 

(顺便说一句,如果在原始html中没有使用任何声明性小部件,也可以删除“parseOnLoad”标志)

您混合了AMD和旧式模块语法。新的AMD样式,
require
不会像旧的
dojo.require
那样为您的命名空间创建全局变量

重写代码以完全使用新的AMD样式,或者删除加载dojo时添加的
async=true
标志以重新启用对旧模块样式的支持

无论如何,用AMD风格重写这个应该不难

require([
    'dojo/_base/json', //_base is for things that used to be in the root dojo namespace.
    'dojox/socket'
],function(
    json,
    dojox_socket
){
    var socket = dojox_socket( "/cometd" );
    function send( data ) {
        return socket.send( json.toJson( data ) );
    }
    // and so on...
}); 

(顺便说一句,如果您没有在原始html中使用任何声明性小部件,您也可以删除“parseOnLoad”标志)

您是否尝试使用Comed?您是否替换了cometD文档中描述的相关dojo文件?是否尝试使用cometD?您是否已按照Comed文档中的描述替换了相关的dojo文件?