首先欢呼所有程序员[今天=程序员日:)]
其次,我正在开发一个项目,其中规范要求使用服务器作为前端和后端的应用程序.该项目是一个先进的智能家居系统.服务器将通过互联网处理来自客户端的命令(比如说来自房子外面的远程控制)并将它们(通过通信通道)发送到应用程序(计划使用JAVA应用程序),这将处理主要逻辑比如控制硬件(灯......),从麦克风(本地麦克风)读取和访问数据库以充当语音识别系统(离线).
现在我还处于规划阶段,我不确定哪个技术最适合这个项目.我正在考虑使用Node.js或Apache作为服务器,使用JAVA应用程序作为后端,并使用任何SQL数据库作为应用程序的SRS.
我希望这个插图清楚地说明了系统的工作原理:

主要问题是:
使Java应用程序与服务器通信的最佳方法是什么(通信通道[必须是双向的])?
你推荐这个工作以外的特定服务器吗?
到目前为止,我的想法是什么:
1- JSP和servlets(使服务器也是应用程序).但我不希望服务器处理离线的东西,我不确定java servlet是否可以访问硬件接口.我还希望服务器与做出关键决策分开(出于安全原因不同的层,因为它不会像本地[离线]系统那样频繁使用).
2-沟通渠道:
A-一个共享文件,但这是一个坏主意,因为我不希望应用程序检查文件内容是否发生了变化(接收到命令)或不时(过度操作).
B-通过端口进行进程间通信(套接字通信)似乎是最好的解决方案,但我不知道在运营成本和通信错误方面会如何转变.
使用的操作系统: Linux Raspbian
编辑:
我确信ZMQ + Apache对于这项任务已经足够好了,但它与WebServices(如SOAP)相比如何呢?WebServices在标准实现和安全性方面是否会成为更好的解决方案?
欢迎所有相关建议,TQ
我正在尝试使用JS来替换包含html标签+属性和样式的字符串中的特定字符串,同时避免标签的内侧被读取或匹配(并保留文本中的原始标签).
例如,我想<span> this is span text </span>成为:<span> this is s<span class="found">pan</span> text </span>当关键字是"pan"时
我尝试使用正则表达式..到目前为止我的正则表达式:
$(this).html($(this).html().replace(new RegExp("([^<\"][a-zA-Z0-9\"'\=;:]*)(" + search + ")([a-zA-Z0-9\"'\=;:]*[^>\"])", 'ig'), "$1<span class='found'>$2</span>$3"));
Run Code Online (Sandbox Code Playgroud)
这种正则表达式仅在<span class="myclass"> span text </span>搜索="p"时才会失败,结果如下:
<s<span class="found">p</span>an class="myclass"> s<span class="found">p</span>an text</s<span class="found">p</span>an>
Run Code Online (Sandbox Code Playgroud)
*此主题应该帮助任何寻求匹配并替换匹配字符串的人,同时避免被特定字符包围的字符串替换.