问题标签 [nsxpcconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
46 浏览

macos - PyObjc:实现 NSXPCInterface

我正在编写一个扩展程序,主应用程序在 PyObjc 中。我想设置主应用程序和扩展程序之间的通信。通过引用链接,我尝试编写协议。

连接对象已创建。

注册元数据也是如此。

但是在创建接口时出现错误。

0 投票
0 回答
53 浏览

macos - 端点安全扩展中的 xpc

我正在开发一个端点安全扩展。主应用程序使用 pyobjc 在 Python 2.7.18 中运行。为了在应用程序和扩展之间建立通信,我尝试了 NSXPCConnection。我成功地将值发送到 Extension。但是在 pyobjc 中使用块并不成功。首先我进入了这个问题。我使用这个解决方案解决了它。在那之后得到问题

后来我想到了使用 XPC 的 C Api。但这里的问题是 xpc_main 阻塞了那个主线程。

xpc_main 调用了 dispatch_main 并且没有执行实际的扩展代码。我在 info.plist 中添加了 XPCService dict,并将 RunLoopType 添加为 NSRunLoop,如链接中所示

如果 xpc_main 和 Endpoint 扩展可以一起工作,请帮助我。NSXPCListner工作正常。如果 xpc_main 不可能,那么我们如何使用 pyobjc 执行块。

0 投票
1 回答
156 浏览

node.js - 在 mac 上安装 XPC 连接时如何解决错误,以便我可以破解我的 furby?

在 MacOS 上安装 XPC 连接时出错。目前正在运行 Mojave (10.14.6)。对于上下文,我正在使用这个 repo破解一个furby 。它让我运行 npm install,然后npm install xpc-connection进行设置。当我运行时,npm install xpc-connection我收到以下错误:

有谁知道如何解决这个问题?我搜索了其他论坛,但找不到mac的解决方案。我想知道这是否也是 node.js 版本的问题。我目前正在运行 node.js 的 v16.13.0。谢谢。

0 投票
0 回答
41 浏览

objective-c - 在 main 方法之外运行 xpc 连接

我想知道初始化 xpc 服务的上下文是否有任何限制。

这是我目前从 main() 初始化我的 xpc 服务的方式,它工作得很好。

但是,当从不同的方法(主)/线程(主线程)调用它时......它不接受远程调用,即使侦听器已正确初始化。

我什至尝试使用以下包装器包装此代码以在主线程上运行

在上面的示例中,[[NSRunLoop mainRunLoop] run];从 main 方法调用 。

所以我的问题是使 XPC 工作的要求是什么.. 是否必须从 main 方法调用它?

0 投票
1 回答
60 浏览

ipc - macOS 上使用 XPC 的快速共享内存

我有两个 GUI 应用程序,它们使用共享内存(8 个内存实例,每个约 100MB)进行频繁的读/写操作,其中一个应用程序(“服务器”)写入内存,另一个从内存中读取。在 Windows 上,“服务器”应用程序使用函数创建共享内存CreateFileMappingA,而其他应用程序使用OpenFileMappingA. 通过 访问缓冲区MapViewOfFile。锁定是通过命名互斥锁完成的。

现在我正在寻找一种在 macOS 上实现这一点的方法。XPC(尤其是xpc_shmem_map)似乎很合适,但我并不完全理解它是如何工作的。从文档和其他来源(https://developer.apple.com/forums/thread/126716)看来,我们似乎总是(?)必须创建一个服务来充当两个应用程序之间的桥梁?或者一个应用程序可以充当“服务器”(如在 Windows 上)?

在 macOS(非沙盒)上以最少的复制在两个应用程序之间共享内存的最佳方式是什么?

问候,