0

私はこの TLS クライアントを持っています。このクライアントの中に、ServerX から PHP クライアントにデータを提供するサーバーがあります。わかりました..すべてが非常に高速に正常に機能しています...しかし、ServerXが応答するとすぐにPHPからの質問に答えたいと思いますが、同期ではありません。読んでください:

var ServerX = tls.connect(port,host,options,function() {
    console.log(' Logging to ServerX...');
    var phpServer = dnode({
        fromPHP: function (variables,correlationalCallbackId,callBackToPHP) { // Shared PHP/NODE function
            othermodule.serialize(variable, function(buffer){ 
    HOW TO MAKE THIS-> global.phpCallBacks[correlationalCallbackId] = callBackToPHP; //I want to stores CallbackToPHP to use later when response from ServerX arrive
                ServerX.write(buffer,function(){ // write buffer to ServerX
                    //console.log("buffer sent");
                                    //callBackToPHP("Response from ServerX");//<--It works, but response dont exists
                });
                global.phpCallBacks[correlationalId]('Hi PHP! :)'); //Dont work even here
            });
        }// toNode END
    });
    //Starts DNODE server to integrate with PHP scripts
    phpServer.listen(PHPServerPort);    

});

そして、相関IDを持つ特定の応答を受信したときにcallbackToPHPを呼び出したい

ServerX.on('data', function(data) {
    othemodule.decode(data,function(message){ // message is an object with messageCorrelationId and other informations
        if(global.phpCallBacks[message.messageCorrelationId]) {
HOW TO MAKE IT WORK HERE-> global.phpCallBacks[message.messageCorrelationId](message.informations); // never fire :((
        }
    });
});

よく説明されていることを願っています...何百万ものスコープでネストされたときにCallBack関数を作成する方法は、グローバルスコープで動作しますか?!?!?

4

0 に答える 0