我正在编写一个Electron应用程序,需要每 ~25ms 从渲染器向在主进程中使用本地
这些数据看起来像这样:
我开始在渲染器进程中使用
因此,我尝试了使用
因此,WebSocket解决方案非常好,但存在一个问题:它需要找到一个空闲端口并通过本地网络进行通信。在macOS中,这也会触发对话框:
“Do you want the application "x.app" to accept incoming network connections?”
与使用本地网络的棘手问题结合在一起的这个对话框是我想避免的。 我的问题是:是否有人知道在Electron中发送数据到其他进程的更好的解决方案,而不涉及本地网络?
fork
模块启动的单独Node进程发送相当多的数据。这些数据看起来像这样:
[{ x: int, y: int }, ...]
,其中包含约1000个点(为了简洁起见,还有一些更多信息)。我开始在渲染器进程中使用
ipc.send
,但它会有很严重的性能损失:每个ipc.send
需要4.25ms。因此,我尝试了使用
ws
npm包在分叉的Node进程中启动WebSocket,并使用JSON将数据发送到WebSocket上。这个解决方案要好得多。甚至通过使用avsc
而不是解析为JSON来进一步改进它(从~4ms到~1ms)。因此,WebSocket解决方案非常好,但存在一个问题:它需要找到一个空闲端口并通过本地网络进行通信。在macOS中,这也会触发对话框:
“Do you want the application "x.app" to accept incoming network connections?”
与使用本地网络的棘手问题结合在一起的这个对话框是我想避免的。 我的问题是:是否有人知道在Electron中发送数据到其他进程的更好的解决方案,而不涉及本地网络?