我创建了一个简单的HTML页面(使用Google Polymer中的组件),其中有一个按钮,单击该按钮会告诉浏览器显示一条消息。
此按钮的代码为:
<paper-button raisedButton onclick="document.querySelector('#notification').show()" label="Click Me!!"></paper-button>
这样可以正常工作,但如果在c ++程序中发生某些事情,我希望能够在我的通知上触发.show()。
这可能吗?
通过这个,我的意思是有一种方法可以在c ++程序中对html组件调用.show()吗?
答案 0 :(得分:1)
这更多是关于c ++到javascript的通信而不是Polymer。但我遇到了多个websocket聚合物组件,包括这个:
https://github.com/elierotenberg/x-websocket
因此,您可以在C ++代码和html页面之间建立套接字通道:
并将一个事件处理程序附加到您的websocket,从而触发&#39; show&#39;另一个组成部分的方法:
var socket = document.querySelector('x-websocket');
var toShow = document.querySelector('#notification')
socket.addEventListner('message', function(data) {
/* you can get access to the message from c++ code through data object */
toShow.show();
});
有关c ++ here
中的websockets的更多信息答案 1 :(得分:0)
肯定是的。 C ++ 允许您构建可靠,快速且可靠的程序,这是您通常希望从后端脚本中获得的。
我能想到的最简单的方法是运行 C ++ 程序并通过net-cat网络管道(或其他设计用于管道流的程序)将其输入/输出隧道化,检查这个以获取更多示例管道一个程序)
然后你可以简单地缓冲你的输入,通过TCP管道将它发送到 C ++ 程序(通过Ajax或任何你想要的)。处理输入然后使用Ajax或其他方法将输出缓冲回html页面。
./$your_prog.cpp | nc -l -p -q 5 $PORT
或
nc -l -p $port_number -e $program_name
如果您不是net-cat
的粉丝,可以使用netpipe
- manual here。您也可以使用tcpserver
已知来处理此类管道:here是更多工具和示例。
您还可以在 C ++ 程序中实施网络功能,以便它可以处理来自HTML页面的网络请求。您可以使用mongoose等HTTP服务器库来简化生活。