Google chrome Chrome关闭时Chrome本机消息未关闭

Google chrome Chrome关闭时Chrome本机消息未关闭,google-chrome,chrome-native-messaging,Google Chrome,Chrome Native Messaging,我制作了chrome主机,用于在扩展和进程之间传递本机消息,当chrome启动时,进程启动,但当我关闭chrome时,进程未关闭。我应该向主机清单中添加参数,还是应该添加进程处理,以便在chrome关闭时关闭进程 谢谢。您没有提供太多细节,但我可以回答您的一些问题: -无需向清单中添加“参数”;没有这样的参数 -当Chrome关闭时,无需从您的流程中检测 每当您向本机消息主机发送消息时,或者如果您使用的是长寿命连接,则当您打开连接时,Chrome就会启动本机消息主机。当STDIN流关闭时,应用程

我制作了chrome主机,用于在扩展和进程之间传递本机消息,当chrome启动时,进程启动,但当我关闭chrome时,进程未关闭。我应该向主机清单中添加参数,还是应该添加进程处理,以便在chrome关闭时关闭进程


谢谢。

您没有提供太多细节,但我可以回答您的一些问题: -无需向清单中添加“参数”;没有这样的参数 -当Chrome关闭时,无需从您的流程中检测

每当您向本机消息主机发送消息时,或者如果您使用的是长寿命连接,则当您打开连接时,Chrome就会启动本机消息主机。当STDIN流关闭时,应用程序应该关闭(简单地说,您不能再从STDIN读取数据)

对于单线程应用程序,流程如下所示: 1.从stdin读取请求 2.处理请求 3.向标准输出写入响应; 重复1-3,只要你能从标准输入中读取;如果无法读取标准输入,请中断循环并退出

    std::string req;
while(!(req=read_request()).empty())
{
       //process request and send response
}
read\u请求
由您来实现:请求的前4个字节包含消息长度,因此请先读取这4个字节,然后读取包含实际JSON请求的len字节。如果你不能读取任何内容(空),那么while循环将中断,你将退出应用程序。

基于用户的答案

如果您使用的是C库函数-(),这应该可以工作

unsigned int c = getchar();
if (c == 0xFFFFFFFF){//this means native app finished its work
        return 0;
}

你用什么语言?你介意发布一些代码吗?太好了。谢谢你。