这是一个宽泛的问题,但我不会给你一些线索。在
很好的例子是LogIo。一旦您愿意运行一些命令,然后将输出推送到GUI,使用节点.js成为自然的方法。此应用程序可能包含以下元素:第一部分运行命令并获取输出并将其推送到
第二部分接收输出并将其保存到DB/文件。保存后,此部件将向
第三部分,它应该是一个websocket服务器,它将处理在线用户并将事件分发给
第四部分,将是预先编写脚本的GUI,能够通过websocket连接到第三部分,登录用户,接收事件并将其广播到其他GUI元素。在
假设您觉得PHP比python更强大,那么最简单的方法就是创建第二部分作为一个PHP服务来处理输入(将获得的输出保存到db),然后,假设使用UDP包到第三部分的UDP侦听套接字。在
第一部分将是python脚本,只需获取命令输出,并将其适当地绕过到第二部分。它应该像往常一样容易处理grep病例:tail -f /var/log/apache2/access.log | /usr/share/bin/myharvester
在开发它的某一点上,您将需要在myharvester之后传递用户或单个任务id作为参数。在
要创建一个节点.js作为第三部分。作为一个单实例脚本,它应该能够接收输入并将其作为事件传递给用户。我以前承诺过这样来过:
^{pr2}$
这个废品是一个基本的例子,说明你所需要的不是逻辑。这个脚本应该能够打开给定端口上的UDP侦听器,并监听在websockets中运行的用户。老实说,一旦你在节点.js,您可能需要修复第二部分和第三部分,因为harvester会将输出直接推送到脚本中,这将维护websocket。但它有一个缺点,就是从其他后端(如CRM)复制一些逻辑。在
最后(第四个)部分是实现内部带有JavaScript的web接口,它将当前登录的用户连接到socket服务器。在
我以前也用过类似的方法,而且它是实时工作的,所以我们可以在电话真正响起来之前向呼叫中心的员工显示来电信息。最后,解决方案(不包括CRM的接口)在两个脚本中关闭—专用的CRM API部分(所有逻辑都发生在这里)来处理来自Asterisk和节点.js事件转发器。在