是否有在C和x2B中实现的高级进程间通信API+;和Javascript 我正在开发一个应用程序,在这里我需要在C++应用程序和JavaScript Web应用程序之间传递消息。

是否有在C和x2B中实现的高级进程间通信API+;和Javascript 我正在开发一个应用程序,在这里我需要在C++应用程序和JavaScript Web应用程序之间传递消息。,javascript,c++,sockets,network-programming,websocket,Javascript,C++,Sockets,Network Programming,Websocket,当然,我可以自己用这两种语言编写sockets代码,而且我过去在必要时也这样做过 我真正想要的是一个更高级别的消息发布或消息队列API,它为我做了很多工作。有人知道这样的API吗 我看过ICE,它似乎没有Javascript绑定。我还研究了Boost消息队列,但它只适合C++方面的东西。如果有必要,我可以为这两种技术中的任何一种推出自己的Javascript绑定 更新:对不起,我之前应该提到这个,我想在浏览器中运行这个 给出一个更完整的故事,我想要的是一个简单的基于浏览器的应用程序,用于配置和显

当然,我可以自己用这两种语言编写sockets代码,而且我过去在必要时也这样做过

我真正想要的是一个更高级别的消息发布或消息队列API,它为我做了很多工作。有人知道这样的API吗

我看过ICE,它似乎没有Javascript绑定。我还研究了Boost消息队列,但它只适合C++方面的东西。如果有必要,我可以为这两种技术中的任何一种推出自己的Javascript绑定

更新:对不起,我之前应该提到这个,我想在浏览器中运行这个

给出一个更完整的故事,我想要的是一个简单的基于浏览器的应用程序,用于配置和显示C++应用程序的日志记录。p>

我知道还有其他的方法,但是我特别感兴趣的是C++和基于浏览器的JavaScript中的高级库,它在套接字API的顶部建立了一个消息队列(如果没有,那么我可以考虑自己实现它,编写一个代码项目文章)。


另外:我并不担心web浏览器的可移植性。例如,如果有一个只在Chrome中工作的高级IPC Javascript库,我会很高兴的。

简单地回答你的问题:不,ECMAscript中没有现成的IPC实现

但实际上你已经回答了你的问题。如果您试图与在浏览器中运行的Javascript进行通信,您确实应该使用(web)套接字连接来在任意方向上传递日期。当然,你可以在C++中编写一个简单的HTTP服务器,但我猜这是过度的,并且没有双向套接字的能力。 <> Pc>从C++开始实现Web套接字连接仍然是一项工作(长期以来,规范一直在不断地变化),但我想已经有一些库了。
如果您正试图与node.js通信,那么使用真正的套接字/管道几乎是一项微不足道的任务。

使用JavaScript,我假设您正在浏览器中运行它?在这种情况下,C++应用程序需要提供一个Web服务器和一些可以调用的基于JSON的WebService。在JavaScript方面,您只需使用AJAX与该Web服务进行通信


另一种选择是WebSoCube,但在C++端可能会有点难实现。

< P>服务器端或非浏览器实现,命名管道如何?


是的,这是一种古老的技术,其用途取决于您使用的操作系统,但只要您的服务器端js环境能够读写文件,它就可以工作,并且符合“高级”进程间通信的描述。

您可以尝试DBus,它有非常简单的机制来定义、查询和使用接口,还有一些用于XPCOM和基于webkit的浏览器的组件(例如和)。DBus也是开源和跨平台的

我找到了一个满足我需要的解决方案。它并不完美,但我认为它已经足够好了

一些人建议使用HTTP和ajax。这是一个有用的想法,经过一些原型设计,我认为它解决了我的基本需求

更具体地说,我使用的是嵌入在C++应用程序中的MyGOOSE HTTP服务器,而我使用jQuery Ajax函数从服务器中提取数据。jQuery客户机不断地轮询服务器以获取新数据,虽然效率不高,但我认为这对我来说已经足够好了


一旦我的实现完成,我将写一篇文章详细解释如何实现这一点,然后我将更新这个答案。

是在浏览器中,还是在服务器端?什么环境?您的选择基本上是JSON/HTTP、XML/HTTP或使用WebSockets的东西。是的,在浏览器中运行它。我认为我将在Javascript中使用Web套接字。这可能会变得很棘手。根据您希望支持的浏览器版本,您还需要实施回退,因为并非所有浏览器版本都支持websocket。基本上,你需要的是C++而不是NoDEJs。webservice可以在任何地方使用,也可以在JavaScript以外的客户机上使用。websockets(IPC的一种方法)不是现成的(至少在某些浏览器中)吗?XMLHttpRequest如何不满足IPC的定义?它甚至是一个很好的RPC接口的基础。JANDY在C++中实现Web套接字仍然是一项工作吗?您是否推荐了一些有助于实现这一目标的资源?谢谢。这看起来很有趣,我会调查的。我认为这不会满足他的要求。我认为他希望web应用程序与服务器上的应用程序对话,而不是与浏览器在同一台本地计算机上的应用程序。只有浏览器和C++应用程序在同一台机器上时才能工作。(DBus是一种本地通信方案。)啊哈,根据更新,它是基于浏览器的,所以我的答案不适用。如果有人感兴趣,我已经写了一篇关于我在这个问题/答案中谈论的项目的文章。