如何从另一个函数向连接到Node.js套接字服务器的客户端写入数据



我正在尝试制作一个函数,该函数允许从节点chakracore实例触发Node的V8实例中的脚本。我通过将Node的新版本作为子进程运行来实现这一点。我想这样做,它只有一个新的Node实例,而不是为我想运行的每个脚本创建另一个。我想要一个runV8Script函数来触发V8端的脚本。我想要触发脚本的方式是有一个IPC套接字,服务器端是Chakra,客户端是V8。

我遇到的问题是,我想不出如何在服务器回调之外使用client,这意味着我不能让函数发送数据。

我只是用下面的简单代码创建这个服务器,没有什么花哨的

let server = net.createServer(client => {
// The client can only be used inside of this callback
});

我正在尝试制作一个函数,该函数允许从节点chakracore实例触发Node的V8实例中的脚本。[…]我想要触发脚本的方式是有一个IPC套接字,服务器端是Chakra,客户端是V8。

一般经验法则是:客户端触发服务器中的事件,而不是相反。

幸运的是,这是完全可能的,因为Node是一个服务器,它可以向其他服务器发送请求。因此,您可以让Node Chakracore实例以服务器角色运行,以处理您想要服务的实际请求,同时以客户端角色向Node-V8实例(运行在不同端口上(发送请求。

您可以手动单独启动Node-V8实例,也可以让Node Chakracore实例将其作为子进程启动(启动时(。无论哪种方式,这两个实例都将通过套接字(HTTP或其他,您可以选择(相互通信。

更详细一点,以防不明显:对于Chakra实例,您可以编写一个处理程序,将请求发送到V8实例,第二个请求获得一个完成处理程序,该处理程序可以选择性地处理其结果,并将其交给第一个请求的完成处理程序。(因此,这在概念上与处理数据库请求或类似的"数据库"恰好是另一个节点实例非常相似。(

最新更新