Articles of ipc

如何在打字稿中加载电子模块

我尝试从打字稿中的电子获得ipcRenderer模块,将信息从当前组件发送到核心,并将信息返回窗口(电子铬浏览器)。 我得到的是通过将ts代码转码为ES5而出现“模块未find”的错误。 const ipc = require('electron')。ipcRenderer;` 更新:错误是在“找不到模块”和这个之间切换: ERROR in ./~/electron/index.js Module build failed: Error: ENOENT, open '/…/node_modules/electron/index.js' @ ./app/components/search/search.ts 12:10-29 这是从现在的电子api 。 我也尝试使用打字机的input语法,但结果是一样的。 比我试图在ES5文件中使用electron.ipcRenderer模块,直接在html文件中加载/链接。 那里工作。 为什么?

Python进程派生的NodeJS – 替代process.send()的Python?

我用NodeJS派生Python脚本,默认情况下,NodeJS在这个新进程和父进程之间创build一个IPC。 使用NodeJS,从小孩发送消息给父母,我做process.send({msg : 'toto'}) 我怎么用Python做到这一点? http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options

用java / scala代码连接node.js进程的最快方法

我有一个用java / scala实现的计算库。 而且我还有一点node.js代码服务于我的应用程序。 我需要find一个方法,如何将这两个世界连接起来,获得最大的性能,但也要考虑到简单性。 我正在考虑通过共享内存进行内部进程通信,但在node.js中找不到任何成熟的方法 这应该主要作为代理机制从node.js代码中调用一些java(理想的是任何)代码。 从node.js到java端,只会请求元数据传递,但是从java到node.js,有时它可能是重要的数据返回(比方说100-200 kb作为上边界,大约90-1000字节案件)然而,这个要求的数额可能是重大的。 考虑OpenMP可能是一个选项,但也找不到Node的任何openmp协议实现。 但是对于java也没有明确的项目。 看起来目前有几种select: 本地扩展+ Java不安全(目前通过reflection提取,应该在JDK 9中打开),并且在基于C / C ++的环境中使用共享内存(需要调查和开发,放松节点 – > c – > Java可能高于共享内存的好处) 使用套接字(在Linux上相当快,不知道有关Windows,跨平台) FastCGI(仍然使用套接字转换,所以会比1选项慢) ZeroMQ / Nanomessage作为传输层(再次插槽里面,但简化了开发) @大卫的回答。 但是不能说任何具体的事情。 需要调查。

NodeJS – 如何让亲生小孩与父母沟通?

我正在尝试这个: var child = spawn('node', args, {cwd: parentDir, stdio: 'ipc'} ); (args是一个参数数组) 但它给出了以下错误: TypeError:stdio选项的错误值:ipc 这实际上工作,所以这个问题似乎确实是stdio ipc参数: var child = spawn('node', args, {cwd: parentDir} ); 这也适用: var child = spawn('node', args, {cwd: parentDir, stdio: 'pipe'} ); 我读了这个: http : //nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options,但我不明白我要去哪里错了。 这是我第一次尝试使用这个NodeJSfunction,所以我很抱歉,如果问题是明显的。 也许还有其他方法可以解决这个问题。 孩子必须产卵,而不是分叉,我只是希望能够从孩子发送消息给父母。 谢谢!! 编辑:我有节点v0.8.18。 我search了IPC http://nodejs.org/changelog.html的版本历史logging,search词“IPC”没有任何内容,这让我觉得我需要一个更新版本的NodeJS。

process.send在* nix / Windows上是sync / async?

我有一个Node.js进程(而不是服务器),分叉N个subprocess。 有些时候可能会有超过50个CP。 所以我开始考虑如果process.send(IPC)真的被封锁,那么这可能是每个CP所经历的一个很大的惩罚。 因为在我的程序中发生的事情是,每个CP使用process.send向单个父进程发送消息,以便父​​进程执行日志logging,以便日志同步。 但是,如果process.send阻塞,那么父进程可能会成为瓶颈。 所以问题是 – Node.js IPC在nix和Windows上阻塞还是非阻塞? 如果它阻塞,如果我或其他人真的想要asynchronous IPC,我应该使用消息队列还是ZeroMQ?

在Node.js中,如何让一个服务器在另一个服务器上调用一个函数?

假设我有2个Web服务器。 他们两个刚刚安装Node.js并运行一个网站(使用Express)。 很基本的东西。 Server-A如何告诉Server-B执行一个函数? (在node.js里面) 最好…是否有一个NPM模块,这使得我真的很容易?

如何创build一个侦听文件描述符的Python套接字服务器?

我正在尝试使Javascript(Nodejs)应用程序与Python应用程序进行通信。 我得到了一些使用绑定到我的本地主机和特定端口的套接字工作 。 为了使事情变得简单(例如,当部署到可能不允许我监听多个端口的环境中)时,我想改变我的实现来使用绑定到文件描述符的套接字。 我search高低,但我发现所有的例子使用端口。 基本上我需要从Nodejs文档 (指定path的版本)的这个例子的Python服务器计数器部分: var client = net.connect({path: '/tmp/echo.sock'} 。 有人请提供一个简单的例子,显示,创build和绑定一个文件描述符套接字,并在其上处理数据和/或指向正确的方向?

Node.js的进程间事件发送器?

目前,我在应用程序中使用EventEmitter2作为消息总线,我非常喜欢它。 无论如何,现在我需要一个消息总线,它不仅在进程中工作,而且还在进程之间。 我理想的候选人会… …与EventEmitter2(一个“插入replace”)API兼容, …没有专门的服务器或外部服务(如数据库,消息队列等),仅使用操作系统资源, …用纯JavaScript编写, …在内存中运行,所以它不需要持久性。 我不需要的东西: 它不需要在Windows上运行,OS X和Linux都可以。 如果它只能在一台机器上运行,那就没有必要了。 任何想法或提示? PS:如果你可以推荐一个可用的产品,那也挺好的,但是如果你能指出我自己如何做无服务器的东西,那也没关系。

电子文本中的上下文菜单堆叠

我正在构build一个基于Electron的应用程序,其中包含一个包含唯一行的网格。 我想要一个特定于每一行的上下文菜单。 这里是一个例子: 虽然这个截图被裁剪,你可以看到有多行,每行包含单独的数据。 由于我想右键单击一行并得到一个独特的上下文菜单,我已经实现了电子上下文菜单 ,它在第一次右键单击时工作,但随后的右键单击会导致上下文菜单的叠加效果。 具体来说,这是发生了什么: 我右键单击行1,并显示正确的上下文菜单 我右键单击第2行,重复的行1的上下文菜单显示,然后行2的上下文菜单显示出来。 (注意在屏幕截图中显示的上下文菜单不对应我的鼠标结束的行) 这个重演。 在React.JS中,这是我的侦听器,它收集electron-context-menu模块所需的contextmenu对象: handleContextMenu() { this.props.contextMenu({ window: electron.remote.BrowserWindow.getFocusedWindow(), prepend: (params, browserWindow) => [{ label: `Library Compare ${this.state.msn}`, click: () => this.runLibCompare() }], append: (params, browserWindow) => [{ label: '—', }] }) }; 其中this.props.contextMenu(…)将React.JS组件传递到以下位置: const contextMenu = eRequire('electron-context-menu'); 我做了一些大规模的debugging,我不认为这个问题是模块。 我使用的模块基本上组织关于上下文菜单的信息,然后使用electron.remote函数和来自电子内部的menu.popup函数。 这是一个链接到github中的特定行 。 const menu = (electron.Menu || […]