1

私は道場 1.8.3 リリースを使用しています。サーバーで node.js socket.io で dojox ソケットを使用しようとしています。クライアントコードは

<!DOCTYPE HTML>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Demo: Basic Programmatic Chart</title>
        <link rel="stylesheet" href="style.css" media="screen">
        <link rel="stylesheet" href="../../../resources/style/demo.css" media="screen">
    </head>
    <body>
        <!-- create the chart -->
        <div id="chartNode" style="width: 550px; height: 550px;"></div>

        <!-- load dojo and provide config via data attribute -->
        <!-- load dojo and provide config via data attribute -->
        <script src="http://localhost/dojo-release-1.8.3/dojo/dojo.js"></script>

<script>
dojo.ready( function(){
require([
    "dojo/request", "dojox/socket"
], function(request, Socket){
    var
        args = {},
        ws = typeof WebSocket != "undefined",
        url =  ws ? "/socket.io/websocket" : "/socket.io/xhr-polling";

    var socket = new Socket(args = {
        url:url,
        headers:{
            "Content-Type":"application/x-www-urlencoded"
        },
        transport: function(args, message){
            args.data = message; // use URL-encoding to send the message instead of a raw body
            request.post(url, args);
        }
    });
    var sessionId;
    socket.on("message", function(){
        if (!sessionId){
            sessionId = message;
            url += '/' + sessionId;
        }else if(message.substr(0, 3) == '~h~'){
            // a heartbeat
        }
    });
});
});
</script>

websocket が作成されると (chrome バージョン 27.0.1453.94 m を使用)、例外「Uncaught TypeError: Cannot call method 'createEvent' of undefined dojo.js:15306」がスローされます。コール スタックは次のとおりです。

on.emit dojo.js:15306
Socket.replace socket.js:78
target.(anonymous function).dispatcher dojo.js:17098
on.emit dojo.js:15270
on.emit dojo.js:15317
fire socket.js:205
connect

それを機能させる方法を教えてください。

4

1 に答える 1

0

しばらく未解決のチケットのようです https://bugs.dojotoolkit.org/ticket/16572

編集: https://github.com/dojo/dojo/commit/3beccffc21fbcd3e21681fc74a29b0c56a31572f

于 2014-02-02T19:12:33.720 に答える