Ticket #2519: dojo-rpc.patch

File dojo-rpc.patch, 1.8 kB (added by guest, 22 months ago)

this patches cometd to allow messages in most responses

  • src/io/cometd.js

     
    190190                // send the message down for processing by the transport 
    191191                this.currentTransport.deliver(message); 
    192192 
    193                 // dispatch the message to any locally subscribed listeners 
    194                 var tname = (this.globalTopicChannels[message.channel]) ? message.channel : "/cometd"+message.channel; 
    195                 dojo.event.topic.publish(tname, message); 
     193        if (message.data) { 
     194                        // dispatch the message to any locally subscribed listeners 
     195                        var tname = (this.globalTopicChannels[message.channel]) ? message.channel : "/cometd"+message.channel; 
     196                        dojo.event.topic.publish(tname, message); 
     197        } 
    196198        } 
    197199 
    198200        this.disconnect = function(){ 
     
    792794                                url: cometd.url||djConfig["cometdRoot"], 
    793795                                method: "post", 
    794796                                mimetype: "text/json", 
    795                                 content: { message: dojo.json.serialize([ message ]) } 
     797                                content: { message: dojo.json.serialize([ message ])}, 
     798                            load: dojo.lang.hitch(this, function(type, data, evt, args){ cometd.deliver(data);})  
    796799                        }; 
    797800                        return dojo.io.bind(bindArgs); 
    798801                }else{ 
     
    869872                        transport: "ScriptSrcTransport", 
    870873                        jsonParamName: "jsonp", 
    871874                        load: dojo.lang.hitch(this, function(type, data, evt, args){ 
    872                                 dojo.debug(dojo.json.serialize(data)); 
     875                                // dojo.debug(dojo.json.serialize(data)); 
    873876                                cometd.deliver(data); 
    874877                                this.connected = false; 
    875878                                this.tunnelCollapse(); 
     
    895898                                mimetype: "text/json", 
    896899                                transport: "ScriptSrcTransport", 
    897900                                jsonParamName: "jsonp", 
    898                                 content: { message: dojo.json.serialize([ message ]) } 
     901                                content: { message: dojo.json.serialize([ message ]) }, 
     902                            load: dojo.lang.hitch(this, function(type, data, evt, args){cometd.deliver(data);}), 
    899903                        }; 
    900904                        return dojo.io.bind(bindArgs); 
    901905                }else{