Javascript dnode服务器->;客户直接电话可能吗?node.js

Javascript dnode服务器->;客户直接电话可能吗?node.js,javascript,node.js,dnode,Javascript,Node.js,Dnode,我用dnode 我读过: 和海底 dnode使用对称协议,因此任何一方都可以定义对方可以调用的函数。 作为@substack,作者回答 现在,我有一个代码如下: server.js client.js 基本上,我想调用从服务器启动的函数:test->hello 然而,我看到的结果是 d、 打开(“远程”,功能(远程) { console.log('connected'); }); @对客户进行评估 d、 打开(“远程”,功能(远程) { remote.test(); }); @永远不会对

我用dnode

我读过:

和海底

dnode使用对称协议,因此任何一方都可以定义对方可以调用的函数。

作为@substack,作者回答

现在,我有一个代码如下:

server.js client.js 基本上,我想调用从服务器启动的函数:test->hello

然而,我看到的结果是


d、 打开(“远程”,功能(远程)
{
console.log('connected');
});

@对客户进行评估


d、 打开(“远程”,功能(远程)
{
remote.test();
});

@永远不会对服务器进行评估

为什么呢

当然,也许我可以使用client->server->client callback方法,但是如果可能的话,我只希望在我未来的工作中使用直截了当的方法


谢谢。

我找到了足够简单的答案,在TCP套接字回调中生成dnode d.on事件定义是一个坏主意,因为在dnode之前,应该在何时触发它还不存在

var HTTPserver = httpServer('/www')
            .listen(9999, function()
            {
                console.log('HTTP listening 9999');
            });

        var dnode = require('dnode');

        var shoe = require('shoe')(
            function(stream)
            {
                var TCPserver = require('net')
                    .createServer()
                    .listen(5005, function()
                    {
                        console.log('TCP listening 5005');
                    })
                    .on('connection', function(socket)
                    {
                        console.log('TCPsocket connected');
                        var d = dnode(
                        {
                        });
                        d.on('remote', function(remote)
                        {
                            remote.test();
                        });
                        d
                            .pipe(stream)
                            .pipe(d);

                        socket.end();
                    })
                    .on('end', function()
                    {
                        console.log('TCPsocket  disconnected');
                    });

            })
            .install(HTTPserver, '/dnode');
var shoe = require('shoe');
        var stream = shoe('/dnode');
        var dnode = require('dnode');
        var d = dnode(
        {
            test: function()
            {
                console.log('hello');
            }
        });
        d.on('remote', function(remote)
        {
            console.log('connnected');
        });
        d.pipe(stream)
            .pipe(d);