Javascript dnode服务器->;客户直接电话可能吗?node.js
我用dnode 我读过: 和海底 dnode使用对称协议,因此任何一方都可以定义对方可以调用的函数。 作为@substack,作者回答 现在,我有一个代码如下: server.js client.js 基本上,我想调用从服务器启动的函数:test->hello 然而,我看到的结果是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(); }); @永远不会对
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);